CN113076362A - 业务执行方法及装置 - Google Patents
业务执行方法及装置 Download PDFInfo
- Publication number
- CN113076362A CN113076362A CN202110286333.5A CN202110286333A CN113076362A CN 113076362 A CN113076362 A CN 113076362A CN 202110286333 A CN202110286333 A CN 202110286333A CN 113076362 A CN113076362 A CN 113076362A
- Authority
- CN
- China
- Prior art keywords
- service
- server
- service execution
- instruction
- client
- 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 58
- 230000003993 interaction Effects 0.000 claims abstract description 22
- 238000004458 analytical method Methods 0.000 claims abstract description 12
- 230000004044 response Effects 0.000 claims description 51
- 238000004891 communication Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 9
- 210000001503 joint Anatomy 0.000 claims description 2
- 230000008569 process Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000009133 cooperative interaction Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Telephonic Communication Services (AREA)
Abstract
本公开关于业务执行方法及装置,所述方法应用于服务端;其特征在于,所述服务端中配置有控制客户端,所述控制客户端用于通过数据库交互协议与目标数据库交互,所述服务端与用户客户端之间建立有长连接;所述方法包括:通过所述长连接,接收并解析用户客户端发送的业务执行请求,从解析的结果中获取对应目标业务的指令;调用所述控制客户端执行所述指令,以使所述目标数据库执行所述目标业务。
Description
技术领域
本公开涉及计算机应用领域,尤其涉及业务执行方法及装置。
背景技术
在网络业务中,人们可能需要通过操作数据库来完成目标业务;但是,出于网络安全因素考虑,通常只有特定的内部服务器才能够直接连接到数据库进行操作。这种安全规则虽然保证了数据库的信息安全,但也一定程度上阻碍了管理人员对于数据库的灵活使用。
相关技术中,可以根据业务需求,将上述内部服务器的数据库调用接口函数进一步封装为业务接口,开放给不在本地的管理人员,使得管理人员可以通过HTTP请求/响应的方式,远程调用上述业务接口,实现数据库业务的远程管理。
但是在采用上述方案的情况下,一方面,由于管理人员能够使用的功能取决于与业务需求强耦合的业务接口,因此一旦业务需求改变,业务接口则需要重新开发和部署;另一方面,在短时间内需要执行的数据库业务较多的情况下,上述方案产生的大量HTTP请求/响应会对网络带宽产生较大压力。
发明内容
有鉴于此,本公开提供了业务执行方法及装置,以至少解决相关技术中的技术问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提出了一种业务执行方法,应用于服务端;其特征在于,所述服务端中配置有控制客户端,所述控制客户端用于通过数据库交互协议与目标数据库交互,所述服务端与用户客户端之间建立有长连接;所述方法包括:
通过所述长连接,接收并解析用户客户端发送的业务执行请求,从解析的结果中获取对应目标业务的指令;
调用所述控制客户端执行所述指令,以使所述目标数据库执行所述目标业务。
可选的,所述方法还包括:
调用所述控制客户端,接收所述目标数据库返回的、对应于所述目标业务的执行结果;
生成携带所述执行结果的业务执行响应;
通过所述长连接,向所述用户客户端发送所述业务执行响应。
可选的,所述解析用户客户端发送的业务执行请求,包括:
基于预设的解密密钥,对用户客户端发送的业务执行请求中经用户客户端加密的指令进行解密;
所述生成携带所述执行结果的业务执行响应,包括:
基于预设的加密密钥,对所述执行结果进行加密后,生成携带加密后的所述执行结果的业务执行响应。
可选的,所述方法还包括:
确定所述业务执行请求中的所述指令对应的权限,是否超出所述业务执行请求对应的用户拥有的权限;
如果超出,生成携带权限不足信息的调用失败响应;
通过所述长连接,向所述用户客户端发送所述调用失败响应。
可选的,所述长连接包括基于Web-socket协议的通信连接。
可选的,所述调用所述控制客户端,包括通过Linux标准输入输出流,调用所述控制客户端。
可选的,所述目标数据库包括基于Redis的目标数据库;所述指令包括Redis业务指令;所述控制客户端包括基于Redis命令行客户端的、用于通过RESP协议与所述目标数据库进行交互的控制客户端。
根据本公开实施例的第二方面,提出了一种业务执行装置,应用于服务端;其特征在于,所述服务端中配置有控制客户端,所述控制客户端用于通过数据库交互协议与目标数据库交互,所述服务端与用户客户端之间建立有长连接;所述装置包括:
获取模块,被配置为通过所述长连接,接收并解析用户客户端发送的业务执行请求,从解析的结果中获取对应目标业务的指令;
第一调用模块,被配置为调用所述控制客户端执行所述指令,以使所述目标数据库执行所述目标业务。
可选的,所述装置还包括:
第二调用模块,被配置为调用所述控制客户端,接收所述目标数据库返回的、对应于所述目标业务的执行结果;
生成模块,被配置为生成携带所述执行结果的业务执行响应;
发送模块,被配置为通过所述长连接,向所述用户客户端发送所述业务执行响应。
可选的,所述获取模块,进一步被配置为:
基于预设的解密密钥,对用户客户端发送的业务执行请求中经用户客户端加密的指令进行解密;
所述生成模块,进一步被配置为:
基于预设的加密密钥,对所述执行结果进行加密后,生成携带加密后的所述执行结果的业务执行响应。
可选的,所述装置还包括权限控制模块,被配置为:
确定所述业务执行请求中的所述指令对应的权限,是否超出所述业务执行请求对应的用户拥有的权限;
如果超出,生成携带权限不足信息的调用失败响应;
通过所述长连接,向所述用户客户端发送所述调用失败响应。
可选的,所述长连接包括基于Web-socket协议的通信连接。
可选的,所述调用所述控制客户端,包括通过Linux标准输入输出流,调用所述控制客户端。
可选的,所述目标数据库包括基于Redis的目标数据库;所述指令包括Redis业务指令;所述控制客户端包括基于Redis命令行客户端的、通过RESP协议与所述目标数据库进行交互的控制客户端。
根据本公开实施例的第三方面,提出了一种服务端,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现上述第一方面任一实施例所述的业务执行方法。
根据本公开实施例的第四方面,提出了一种业务执行系统,包括服务端、用户客户端、以及与所述服务端对接的目标数据库;其中,所述服务端中配置有控制客户端,所述控制客户端用于通过数据库交互协议与目标数据库交互,所述服务端与用户客户端之间建立有长连接;
所述用户客户端用于接收对应目标业务的指令,并生成业务执行请求,通过所述长连接发送至所述服务端;
所述服务端用于通过所述长连接接收所述业务执行请求,解析得到所述对应目标业务的指令;并进一步调用所述控制客户端执行所述指令,以使所述目标数据库执行所述目标业务。
根据本公开实施例的第五方面,提出了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行上述任一实施例所述的业务执行方法。
根据本公开实施例的第六方面,提出了一种计算机程序产品,括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现上述任一实施例所述的业务执行方法。
以上技术方案中,一方面,由于用户可以将需要执行的、对应目标业务的指令以业务执行请求的方式发送至服务端,以使服务端调用控制客户端执行上述指令完成目标业务,且上述指令不与特定的业务耦合,因此,相对于远程调用基于数据库调用接口函数封装的业务接口的传统方案而言,即使业务需求发生改变,也无须重新开发和部署;
另一方面,由于用户客户端基于长连接向服务端发送携带指令的业务执行请求,在需要多次发送业务执行请求时,无需多次重复握手建立连接,因此,相对于基于HTTP短连接的通信方式,能够显著节省发送上述业务执行请求所消耗的网络带宽。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书文本一同用于解释原理,并不构成对本公开的不当限定。
图1是根据本公开的实施例示出的一种业务执行的情景示意图;
图2是根据本公开的实施例示出的一种业务执行方法的流程示意图;
图3是根据本公开的实施例示出的一种业务执行方法的交互示意图;
图4是根据本公开的实施例示出的一种业务执行装置的示意框图;
图5是根据本公开的实施例示出的一种电子设备的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本公开一个或多个实施例中的技术方案,下面将结合本公开一个或多个实施例中的附图,对本公开一个或多个实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是一部分实施例,而不是全部的实施例。基于本公开一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的系统和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在网络业务中,人们可能需要通过操作数据库来完成目标业务;但是,出于网络安全因素考虑,通常只有特定的内部终端才能够直接连接到数据库进行操作,而不允许在开放网络环境下架设控制终端。这种安全规则虽然保证了数据库的信息安全,但也一定程度上阻碍了管理人员对于数据库的灵活使用。
以Redis数据库为例,Redis是一种常用的缓存型数据库,许多网络业务都需要Redis数据库管理缓存数据;在遵守网络安全规则的前提下,只有本地Redis客户端有权限访问Redis数据库中的数据,但为了让有特定权限的用户可以远程访问、管理,就需要一种间接访问Redis数据库的方案。
相关技术中,可以根据业务需求,将上述内部服务器的数据库调用接口函数进一步封装为业务接口,开放给不在本地的管理人员,使得管理人员可以通过HTTP请求/响应的方式,远程调用上述业务接口,实现数据库业务的远程管理。
但是在采用上述方案的情况下,一方面,由于管理人员能够使用的功能取决于与业务需求强耦合的业务接口,因此一旦业务需求改变,业务接口则需要重新开发和部署;另一方面,在短时间内需要执行的数据库业务较多的情况下,上述方案产生的大量HTTP请求/响应会对网络带宽产生较大压力。
基于此,本公开提出一种用户客户端通过预先建立的长连接控制服务端,间接实现对目标数据库的远程控制,以完成目标业务的技术方案。
在实现时,服务端与用户客户端之间可以预先建立长连接,用于接收用户通过用户客户端发送的、携带对应于目标业务的指令的业务执行请求;
另一方面,服务端中可以配置有控制客户端,用于通过数据库交互协议与目标数据库交互;服务端在接收到上述业务执行请求后,可以从中解析得到上述指令,并调用上述控制客户端执行上述指令,从而控制目标数据库执行目标业务。
在以上技术方案中,一方面,由于用户可以将需要执行的、对应目标业务的指令以业务执行请求的方式发送至服务端,以使服务端调用控制客户端执行上述指令完成目标业务,且上述指令不与特定的业务耦合,因此,相对于远程调用基于数据库调用接口函数封装的业务接口的传统方案而言,即使业务需求发生改变,也无须重新开发和部署;
另一方面,由于用户客户端基于长连接向服务端发送携带指令的业务执行请求,在需要多次发送业务执行请求时,无需多次重复握手建立连接,因此,相对于基于HTTP短连接的通信方式,能够显著节省发送上述业务执行请求所消耗的网络带宽。
下面通过具体实施例并结合具体的应用场景对技术方案进行描述。
请参见图1,图1是根据本公开的实施例示出的一种业务执行的情景示意图;该情景中可以包括用户、用户客户端、服务端以及目标数据库四个交互角色,其中,服务端中可以配置有控制客户端,用于与目标数据库进行对接交互;且如前所述,出于网络安全的考虑,用户客户端可以被设置为禁止与目标数据库进行直接交互。
可以理解的是,上述服务端,可以是专用的单台服务器,也可以是服务器集群,还可以是云服务器中划分出的服务器虚拟机或服务器程序;类似的,上述用户客户端既可以是专用的客户端硬件,也可以是用户客户端软件,还可以是基于网页的Web应用或者基于其他应用平台的“小程序”;本领域技术人员可以根据具体需求,自行确定上述服务端与用户客户端的具体实现形式,本公开无需具体限定。
请参考图2,图2是本公开一实施例提供的一种业务执行方法的流程图,该方法可以应用于服务端;其中,上述服务端中配置有控制客户端,上述控制客户端用于通过数据库交互协议与目标数据库交互,上述服务端与用户客户端之间可以建立有长连接;该方法可以包括以下步骤:
S201,通过所述长连接,接收并解析用户客户端发送的业务执行请求,从解析的结果中获取对应目标业务的指令;
S202,调用所述控制客户端执行所述指令,以使所述目标数据库执行所述目标业务。
为表述方便,请参见图3,图3是根据本公开的实施例示出的一种业务执行方法的交互示意图,本公开下文将以图3示出的顺序,详细阐述本公开提出的业务执行技术方案。
在本公开中,上述用户客户端可以首先获取用户输入的指令,并对应生成业务执行请求;具体而言,上述指令可以包括与待执行的目标业务相对应的指令;例如,上述目标业务是将数据库中的key为“11223344”的键值中的姓名字段修改为“张三”,那么对应的指令就可以是数据库修改指令。可以理解的是,对于不同形式的用户客户端,其获取用户输入的指令的方式可以有所不同;例如,如果该用户客户端是传统的应用软件形式,那么可以通过键盘输入流、文件输入流、语音识别输入流的方式获取到用户输入该用户客户端的指令;如果该用户客户端是Web网页的形式,那么可以通过文本框、文件上传等渠道获取到用户输入的指令。具体的指令输入方式本公开无需进行全部列举,本领域技术人员可以根据具体需求自行选择和设计。
在获取到用户输入的指令后,上述用户客户端可以进一步生成携带该指令的业务执行请求;具体而言,上述业务执行请求携带上述指令时,可以携带是上述目标数据库能够直接接受的指令,也可以是出于进一步节省网络资源、抵抗干扰、对抗攻击等考虑,对上述指令进行二次编码后再携带在对应的业务执行请求中,对此本公开不作具体限定,本领域技术人员可以根据具体环境进行设计。
在本公开中,上述用户客户端在生成业务执行请求后,可以通过与服务端预先建立的长连接,将该业务执行请求发送到服务端;该服务端接收到该业务执行请求后,则可以对其进行解析,从中获取到用户输入到用户客户端的、与待执行的目标业务相对应的指令;具体而言,如果先前用户客户端在生成上述业务执行请求时,采用了直接携带指令明文的方式,那么上述服务端在对上述业务执行请求进行解析的时候,即可将该业务执行请求作为一个结构化的数据进行结构化解析,得到上述指令;如果先前用户客户端在生成上述业务执行请求时,采用了先将指令进行二次编码,再将编码后的指令携带在上述业务执行请求中的方式,那么,上述服务端在对上述业务执行请求进行解析的时候,可以将该业务执行请求作为一个结构化的数据进行结构化解析,得到编码后的指令,再进一步通过对应的解码得到指令原文。
在本公开中,上述服务端在解析得到上述指令后,可以进一步调用上述服务端中配置的控制客户端,执行上述指令;具体而言,由于该控制客户端是用于通过数据库交互协议与目标数据库交互的,因此调用该控制客户端执行上述指令,即可通过上述数据库交互协议,控制上述目标数据库执行目标业务。在具体实现中,上述控制客户端与上述目标数据库的类型可以对应进行选择,以取得更好的功能兼容效果,本公开无需进行全部列举,本领域技术人员可以根据具体环境进行设计。
可以理解的是,上述交互流程仅仅是一便于理解的简单示例,在此基础上还可以进行进一步的扩展设计。
在一实施例中,在上述服务端调用上述服务端中配置的控制客户端执行上述指令后,目标数据库执行对应的目标业务,可能产生需要向用户展示的返回结果;在这种情况下,上述服务端可以进一步调用上述控制客户端接收上述目标数据库返回的、对应于上述目标业务的执行结果,并生成携带该执行结果的业务执行响应;与前述业务执行请求的生成过程类似,上述服务端既可以将该执行结果的明文携带在上述业务执行响应中,也可以是出于进一步节省网络资源、抵抗干扰、对抗攻击等考虑,对上述执行结果进行二次编码后,再携带在对应的业务执行响应中,对此本公开不作具体限定,本领域技术人员可以根据具体环境进行设计。
在生成业务执行响应后,上述服务端可以将该业务执行响应发送至上述用户客户端;上述用户客户端在接收到该业务执行响应后,则可以进一步从中解析得到目标业务的执行结果;具体而言,与前述服务端对业务执行请求的解析过程类似,如果先前服务端在生成上述业务执行响应时,采用了直接携带执行结果明文的方式,那么上述用户客户端在对上述业务执行响应进行解析的时候,即可将该业务执行响应作为一个结构化的数据进行结构化解析,得到上述执行结果;如果先前服务端在生成上述业务执行响应时,采用了先将执行结果进行二次编码,再将编码后的执行结果携带在上述业务执行响应中的方式,那么,上述用户客户端在对上述业务执行响应进行解析的时候,可以将该业务执行响应作为一个结构化的数据进行结构化解析,得到编码后的执行结果,再进一步通过对应的解码得到执行结果原文。
最后,上述用户客户端可以将上述执行结果展示给用户;具体而言,展示的方式可以是直接显示字符串形式的执行结果,也可以将执行结果进行图形化或音频化处理后进行展示。具体展示的方式,本领域技术人员可以根据具体需求进行设计,本公开不作进一步限定。
应用上述方案,在根据用户的指令使目标数据库完成对应的目标业务的基础上,目标业务的执行结果可以通过服务端的转发,最终通过用户客户端完成展示,使用户明确得知目标业务执行的结果,从而可以给用户以更加完善的使用体验。
在一实施例中,上述二次编码的过程可以是加密过程,而解码的过程则可以是对应的解密过程;具体而言,上述用户客户端生成携带上述指令的业务执行请求时,可以基于预设的加密密钥,对上述指令进行加密后,生成携带加密后的上述指令的业务执行请求;相应的,上述服务端在解析用户客户端发送的业务执行请求时,则可以基于预设的解密密钥,对用户客户端发送的业务执行请求中经用户客户端加密的指令进行解密;类似的,上述服务端在生成携带上述执行结果的业务执行响应时,可以基于预设的加密密钥,对上述执行结果进行加密后,生成携带加密后的上述执行结果的业务执行响应;亦对应的,上述用户客户端在解析上述业务执行响应时,可以通过基于预设的解密密钥,对上述业务执行响应中,经上述服务端加密处理后的上述执行结果进行解密的方式,得到解密后的上述执行结果。
采用上述方案,由于传输过程中的业务执行请求以及业务执行响应携带的内容是加密处理后的内容,因此即使传输过程中的信息遭到拦截和窃取,窃取方也只能获得加密内容,无法直接获取到具体的业务执行请求和业务执行响应的原文内容,可以避免网络攻击带来的泄密等问题。
可以理解的是,上述编/解码、加/解密的过程的具体方案,本领域技术人员可以根据具体需求进行选择和设定。例如,为了将数据全部转化为可见字符,可以将上述需要进行编/解码的数据进行base64编/解码;为了保证传输过程的安全性,可以采用AES对称加密规则对上述需要进行加密的数据进行加/解密,等等。因此,本公开对此无需进行详细限定。
在一实施例中,上述业务执行过程中还可以加入权限控制流程;具体而言,上述服务端在接收到上述业务执行请求后,可以对上述业务执行请求中的上述指令对应的权限,是否超出上述业务执行请求对应的用户拥有的权限进行确定;如果超出,则可以生成携带权限不足信息的调用失败响应,并通过上述长连接,向上述用户客户端发送上述调用失败响应。对应的,如果上述用户客户端通过上述长连接获取到了该调用失败响应,则可以向用户展示对应上述业务执行请求的权限不足提示。
举例而言,普通用户李四试图删除目标数据库中key为“11223344”的键值,而普通用户被设计为没有删除权限,那么李四通过用户客户端发送的业务执行请求就会被发现请求的权限超出李四本人具有的权限,因此该请求不能被进一步执行;而李四则可以通过用户客户端查看到用户客户端在接收到服务端发送来的调用失败响应后显示的、对应的权限不足提示,得知业务执行失败的原因。
可以理解的是,具体权限规则的设计,以及查询权限的具体方案,本领域技术人员可参考相关技术文献进行设计,本公开无需进行进一步限定。采用此方案,可以进一步保证上述远程调用过程的安全性,也能使该业务执行的方案能够适配更加复杂的使用人员环境。
应用上述方案,由于可以对用户的权限进行查验,因此只需为不同职责的用户设置不同的权限,一方面能够避免诸如删除不相关业务信息的误操作,另一方面也能够提高整个系统的安全性。
在一实施例中,上述长连接可以是基于Web-socket协议的通信连接;Web-socket是一种全双工的通信协议,通信的双方都可以主动向对方发出信息,并且无需反复建立、断开连接,传输的效率显著提升,因此,相对于传统的HTTP请求/响应机制而言,采用基于Web-socket协议的通信连接,可以进一步减少通信中带宽的浪费,提升响应的速度。
在一实施例中,上述服务端调用上述控制客户端的方式,可以是通过Linux标准输入输出流进行调用;具体而言,通过Linux标准输入输出流方式调用上述控制客户端,相对于模拟键盘等外设的方式进行输入的方式,可以充分利用操作系统自带的输入输出机制,高效地将指令输入上述控制客户端,并从控制客户端中高效地获取目标数据库返回的执行结果,也能减少数据中转的环节,提高系统的稳定性。
在一实施例中,上述目标数据库可以包括基于Redis的目标数据库;上述指令则可以包括Redis业务指令;上述控制客户端包括基于Redis命令行客户端的、用于通过RESP协议与上述目标数据库进行交互的控制客户端;如前所述,上述指令、控制客户端、数据库交互协议均可以与目标数据库的具体选择相关,由于Redis数据库原生支持Redis-cli客户端以及RESP协议,而Redis-cli客户端是Redis数据库自带的一种基于Redis命令行的客户端,因此,将上述控制客户端设计为基于Redis-cli的控制客户端,可以直接利用Redis数据库自带的软件资源,并充分发挥Redis业务指令高效的特点,让用户能够用更加熟悉、高效的指令方式控制Redis数据库,从而提高完成对应的目标业务的效率。
可以理解的是,上述具体的软硬件组合,仅为便于描述的可行示例,并不能限制本公开。本领域技术人员可以根据上述方法的机制自行选择具体的软硬件实现方式。
上述内容即为本公开针对所述业务执行方法的全部实施例。本公开还提供了对应的业务执行装置的实施例如下:
请参见图4,图4是根据本公开的实施例示出的一种业务执行装置的示意框图;该装置可以应用于服务端;其中,该服务端中可以配置有控制客户端,该控制客户端可以用于通过数据库交互协议与目标数据库交互,该服务端与用户客户端之间可以建立有长连接;该装置可以包括:
获取模块401,被配置为通过所述长连接,接收并解析用户客户端发送的业务执行请求,从解析的结果中获取对应目标业务的指令;
第一调用模块402,被配置为调用所述控制客户端执行所述指令,以使所述目标数据库执行所述目标业务。
在一实施例中,上述装置还可以包括第二调用模块、生成模块和发送模块;其中,上述第二调用模块可以被配置为调用上述控制客户端,接收上述目标数据库返回的、对应于上述目标业务的执行结果;上述生成模块可以被配置为生成携带上述执行结果的业务执行响应;上述发送模块可以被配置为通过上述长连接,向上述用户客户端发送上述业务执行响应。
在一实施例中,上述获取模块401可以进一步被配置为基于预设的解密密钥,对用户客户端发送的业务执行请求中经用户客户端加密的指令进行解密;对应的,上述生成模块可以进一步被配置为基于预设的加密密钥,对上述执行结果进行加密后,生成携带加密后的上述执行结果的业务执行响应。
在一实施例中,上述装置还可以包括权限控制模块,该模块可以被配置为首先确定上述业务执行请求中的上述指令对应的权限,是否超出上述业务执行请求对应的用户拥有的权限;如果超出,则生成携带权限不足信息的调用失败响应,并通过上述长连接,向上述用户客户端发送上述调用失败响应。
在一实施例中,上述长连接可以包括基于Web-socket协议的通信连接。
在一实施例中,上述调用上述控制客户端,可以包括通过Linux标准输入输出流,调用上述控制客户端。
在一实施例中,上述目标数据库可以包括基于Redis的目标数据库;上述指令可以包括Redis业务指令;上述控制客户端可以包括基于Redis命令行客户端的、通过RESP协议与上述目标数据库进行交互的控制客户端。
关于上述实施例中的装置,其中各模块的具体实现方式,已经在描述对应方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开的实施例还提出一种服务端,包括:
处理器;
用于存储上述处理器可执行指令的存储器;
其中,上述处理器被配置为执行上述指令,以实现如上述任一实施例上述的应用于服务端的业务执行方法。
本公开的实施例还提出了一种业务执行系统,包括服务端、用户客户端、以及与上述服务端对接的目标数据库;其中,上述服务端中配置有控制客户端,上述控制客户端用于通过数据库交互协议与目标数据库交互,上述服务端与用户客户端之间建立有长连接;
上述用户客户端用于接收对应目标业务的指令,并生成业务执行请求,通过上述长连接发送至上述服务端;
上述服务端用于通过上述长连接接收上述业务执行请求,解析得到上述对应目标业务的指令;并进一步调用上述控制客户端执行上述指令,以使上述目标数据库执行上述目标业务。
本公开的实施例还提出了一种计算机可读存储介质,当上述计算机可读存储介质中的指令由电子设备的处理器执行时,使得上述电子设备能够执行上述任一实施例上述的业务执行方法。
本公开的实施例还提出了一种计算机程序产品,括计算机程序/指令,其特征在于,上述计算机程序/指令被处理器执行时实现上述任一实施例上述的业务执行方法。
图5是根据本公开的实施例示出的一种电子设备的示意框图。参照图5,电子设备500可以包括以下一个或多个组件:处理组件502,存储器504,电源组件506,多媒体组件508,音频组件510,输入/输出(I/O)的接口512,传感器组件514,以及通信组件518。
处理组件502通常控制电子设备500的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件502可以包括一个或多个处理器520来执行指令,以完成上述业务执行方法的全部或部分步骤。此外,处理组件502可以包括一个或多个模块,便于处理组件502和其他组件之间的交互。例如,处理组件502可以包括多媒体模块,以方便多媒体组件508和处理组件502之间的交互。
存储器504被配置为存储各种类型的数据以支持在电子设备500的操作。这些数据的示例包括用于在电子设备500上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器504可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件506为电子设备500的各种组件提供电力。电源组件506可以包括电源管理系统,一个或多个电源,及其他与为电子设备500生成、管理和分配电力相关联的组件。
多媒体组件508包括在电子设备500和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件508包括一个前置摄像头和/或后置摄像头。当电子设备500处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的或具有焦距和光学变焦能力的光学透镜系统。
音频组件510被配置为输出和/或输入音频信号。例如,音频组件510包括一个麦克风(MIC),当电子设备500处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器504或经由通信组件518发送。在一些实施例中,音频组件510还包括一个扬声器,用于输出音频信号。
I/O接口512为处理组件502和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件514包括一个或多个传感器,用于为电子设备500提供各个方面的状态评估。例如,传感器组件514可以检测到电子设备500的打开/关闭状态,组件的相对定位,例如所述组件为电子设备500的显示器和小键盘,传感器组件514还可以检测电子设备500或电子设备500一个组件的位置改变,用户与电子设备500接触的存在或不存在,电子设备500方位或加速/减速和电子设备500的温度变化。传感器组件514可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件514还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件514还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件518被配置为便于电子设备500和其他设备之间有线或无线方式的通信。电子设备500可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件518经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件518还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在本公开一实施例中,电子设备500可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述业务执行方法。
在本公开一实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器504,上述指令可由电子设备500的处理器520执行以完成上述业务执行方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
需要说明的是,在本公开中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本公开实施例所提供的方法和装置进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本公开的方法及其核心思想;同时,对于本领域的一般技术人员,依据本公开的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本公开的限制。
Claims (10)
1.一种业务执行方法,应用于服务端;其特征在于,所述服务端中配置有控制客户端,所述控制客户端用于通过数据库交互协议与目标数据库交互,所述服务端与用户客户端之间建立有长连接;所述方法包括:
通过所述长连接,接收并解析用户客户端发送的业务执行请求,从解析的结果中获取对应目标业务的指令;
调用所述控制客户端执行所述指令,以使所述目标数据库执行所述目标业务。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
调用所述控制客户端,接收所述目标数据库返回的、对应于所述目标业务的执行结果;
生成携带所述执行结果的业务执行响应;
通过所述长连接,向所述用户客户端发送所述业务执行响应。
3.根据权利要求2所述的方法,其特征在于,
所述解析用户客户端发送的业务执行请求,包括:
基于预设的解密密钥,对用户客户端发送的业务执行请求中经用户客户端加密的指令进行解密;
所述生成携带所述执行结果的业务执行响应,包括:
基于预设的加密密钥,对所述执行结果进行加密后,生成携带加密后的所述执行结果的业务执行响应。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
确定所述业务执行请求中的所述指令对应的权限,是否超出所述业务执行请求对应的用户拥有的权限;
如果超出,生成携带权限不足信息的调用失败响应;
通过所述长连接,向所述用户客户端发送所述调用失败响应。
5.根据权利要求2所述的方法,其特征在于,所述长连接包括基于Web-socket协议的通信连接。
6.一种业务执行装置,应用于服务端;其特征在于,所述服务端中配置有控制客户端,所述控制客户端用于通过数据库交互协议与目标数据库交互,所述服务端与用户客户端之间建立有长连接;所述装置包括:
获取模块,被配置为通过所述长连接,接收并解析用户客户端发送的业务执行请求,从解析的结果中获取对应目标业务的指令;
第一调用模块,被配置为调用所述控制客户端执行所述指令,以使所述目标数据库执行所述目标业务。
7.一种服务端,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1~5中任一项所述的业务执行方法。
8.一种业务执行系统,其特征在于,包括:服务端、用户客户端、以及与所述服务端对接的目标数据库;其中,所述服务端中配置有控制客户端,所述控制客户端用于通过数据库交互协议与目标数据库交互,所述服务端与用户客户端之间建立有长连接;
所述用户客户端用于接收对应目标业务的指令,并生成业务执行请求,通过所述长连接发送至所述服务端;
所述服务端用于通过所述长连接接收所述业务执行请求,解析得到所述对应目标业务的指令;并进一步调用所述控制客户端执行所述指令,以使所述目标数据库执行所述目标业务。
9.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1~5中任一项所述的业务执行方法。
10.一种计算机程序产品,括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现权利要求1~5中任一项所述的业务执行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110286333.5A CN113076362B (zh) | 2021-03-17 | 2021-03-17 | 业务执行方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110286333.5A CN113076362B (zh) | 2021-03-17 | 2021-03-17 | 业务执行方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113076362A true CN113076362A (zh) | 2021-07-06 |
CN113076362B CN113076362B (zh) | 2024-02-23 |
Family
ID=76612945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110286333.5A Active CN113076362B (zh) | 2021-03-17 | 2021-03-17 | 业务执行方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113076362B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114979288A (zh) * | 2022-05-17 | 2022-08-30 | 中国工商银行股份有限公司 | 对客户端的控制方法及装置、系统、存储介质、电子设备 |
CN115801847A (zh) * | 2022-10-24 | 2023-03-14 | 广州民航信息技术有限公司 | 一种指令解析方法、系统和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107395559A (zh) * | 2017-05-27 | 2017-11-24 | 北京五八信息技术有限公司 | 基于redis的数据处理方法及设备 |
CN109922053A (zh) * | 2019-02-22 | 2019-06-21 | 北京三快在线科技有限公司 | 数据传输方法、装置、电子设备及可读存储介质 |
CN111400312A (zh) * | 2020-02-25 | 2020-07-10 | 华南理工大学 | 一种基于改进lsm树的边缘存储数据库 |
CN111414407A (zh) * | 2020-02-13 | 2020-07-14 | 中国平安人寿保险股份有限公司 | 数据库的数据查询方法、装置、计算机设备及存储介质 |
CN111538605A (zh) * | 2020-04-24 | 2020-08-14 | 北京思特奇信息技术股份有限公司 | 一种分布式数据访问层中间件及命令执行方法和装置 |
-
2021
- 2021-03-17 CN CN202110286333.5A patent/CN113076362B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107395559A (zh) * | 2017-05-27 | 2017-11-24 | 北京五八信息技术有限公司 | 基于redis的数据处理方法及设备 |
CN109922053A (zh) * | 2019-02-22 | 2019-06-21 | 北京三快在线科技有限公司 | 数据传输方法、装置、电子设备及可读存储介质 |
CN111414407A (zh) * | 2020-02-13 | 2020-07-14 | 中国平安人寿保险股份有限公司 | 数据库的数据查询方法、装置、计算机设备及存储介质 |
CN111400312A (zh) * | 2020-02-25 | 2020-07-10 | 华南理工大学 | 一种基于改进lsm树的边缘存储数据库 |
CN111538605A (zh) * | 2020-04-24 | 2020-08-14 | 北京思特奇信息技术股份有限公司 | 一种分布式数据访问层中间件及命令执行方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114979288A (zh) * | 2022-05-17 | 2022-08-30 | 中国工商银行股份有限公司 | 对客户端的控制方法及装置、系统、存储介质、电子设备 |
CN115801847A (zh) * | 2022-10-24 | 2023-03-14 | 广州民航信息技术有限公司 | 一种指令解析方法、系统和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113076362B (zh) | 2024-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110619220B (zh) | 对神经网络模型加密的方法及装置、存储介质 | |
CN112287372B (zh) | 用于保护剪贴板隐私的方法和装置 | |
US20220382884A1 (en) | Method and device for parsing shared password | |
KR101639147B1 (ko) | 음성 서비스에서의 정보 송신 방법, 장치, 프로그램 및 기록매체 | |
CN103914520B (zh) | 数据查询方法、终端设备和服务器 | |
CN113076362B (zh) | 业务执行方法及装置 | |
CN111431724B (zh) | 数据传输方法、装置及电子设备 | |
CN105471814A (zh) | 账号管理方法及装置 | |
CN108900553B (zh) | 一种通信方法、装置及计算机可读存储介质 | |
CN109525652B (zh) | 信息分享方法、装置、设备和存储介质 | |
CN113204759A (zh) | 一种身份认证方法及装置、电子设备和存储介质 | |
CN107423146B (zh) | 控制应用程序相互调用的方法、装置及系统 | |
CN113055169B (zh) | 数据加密方法、装置、电子设备及存储介质 | |
CN114218510A (zh) | 业务页面显示方法、装置和设备 | |
CN105681365A (zh) | 用于文件传输的方法和装置 | |
CN111818466A (zh) | 信息发送、接收方法及装置、电子设备及可读存储介质 | |
CN107566354B (zh) | 网页内容检测方法、装置及存储介质 | |
CN105376399A (zh) | 用于控制智能设备的方法及装置 | |
CN107111635B (zh) | 内容传递方法 | |
CN113901496A (zh) | 基于多业务系统的业务处理方法、装置和设备 | |
CN105320892B (zh) | 社交通信应用的通信记录存储方法及相关系统 | |
CN109104361B (zh) | 即时通信方法、装置、电子设备及存储介质 | |
KR20190010682A (ko) | 멀티 디바이스 환경에서의 사용자 프라이버시 보호를 위한 메시지 제공 방법 및 이를 위한 장치 | |
CN113206832B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN114221921B (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 |