数据处理方法、装置、存储介质及设备与流程

文档序号:26750774发布日期:2021-09-25 02:26阅读:75来源:国知局
数据处理方法、装置、存储介质及设备与流程

1.本技术涉及计算机技术领域,尤其涉及一种数据处理方法、装置、存储介质及设备。


背景技术:

2.随着信息网络的快速发展,各个交互方之间可以通过服务调用进行数据通信,一次服务调用由两方(两个微服务)构成,发起调用的一方被称为服务调用方,被调用的一方被称为服务提供方。双方按照一定的信息格式进行通信,这种信息格式被称为服务契约。服务契约可能会更新或发生变化,如果双方的服务契约不同,则无法正常通信,因此,相关方都希望能够及时、准确地知道服务契约是否发生变化以及如何变化。
3.目前,服务契约数据的更新是需要开发人员手工单独维护的,时间一长,实际运行的代码信息与向编程人员展示的代码信息会出现不一致,大大增加了服务器和客户端的开发联调时间。另外,进行数据交互时,编程人员编写具体的交互实现代码,工程较大,且容易出错。而且在编写具体的交互实现代码的时候,代码也可能不一样,风格各异,增加了后期维护成本。另外,服务器每次进行契约数据改动时,都要通知到所有客户端,每个客户端需要手动维护与服务器一致,导致契约管理效率较低。


技术实现要素:

4.本技术实施例所要解决的技术问题在于,提供一种数据处理方法、装置、存储介质及设备,可以提高契约管理效率。
5.第一方面,本技术提供一种数据处理方法,包括:
6.服务器接收客户端发送的与目标业务相关联的业务请求数据,业务请求数据包括目标业务的目标业务标识和目标业务数据;
7.服务器从契约库中获取目标业务标识对应的目标契约数据包,目标契约数据包中包括服务器与客户端之间的业务交互规则,以及服务器针对至少一个业务的业务处理逻辑;
8.服务器从目标契约数据包包括的第一数据包中,获取目标业务标识对应的目标业务处理逻辑,第一数据包中包括服务器针对至少一个业务的业务处理逻辑;
9.服务器根据目标业务处理逻辑,对目标业务数据进行处理。
10.可见,本方案中服务器可以直接从契约库中获取目标业务标识对应的目标契约数据包,从目标契约数据包包括的第一数据包中获取目标业务标识对应的目标业务处理逻辑,采用该目标业务处理逻辑便可以对目标业务数据进行业务处理,而不用编写契约实现代码,可以提高数据交互的效率,也不用人工对契约进行维护,可以提高契约管理的效率。
11.结合第一方面,在一些可能的实现方式中,服务器接收客户端发送的与目标业务相关联的业务请求数据之前,该方法还包括:
12.服务器获取n个业务对应的契约内容数据,对契约内容数据进行契约编码,得到契
约内容数据对应的契约代码,契约内容数据包括服务器与客户端之间的业务交互规则,以及服务器针对n个业务的业务处理逻辑,n为正整数;
13.服务器对契约代码进行解析,得到契约代码中的契约数据结构,根据契约数据结构以及契约代码,生成契约内容数据对应的契约数据包;
14.服务器将契约数据包存储至契约库中。
15.结合第一方面,在一些可能的实现方式中,契约内容数据包括服务器对应的第一契约内容和客户端对应的第二契约内容;
16.服务器获取n个业务对应的契约内容数据,对契约内容数据进行契约编码,得到契约内容数据对应的契约代码,包括:
17.服务器获取n个业务对应的第一契约内容和n个业务对应的第二契约内容;
18.服务器采用契约生成插件中的编码器,分别对第一契约内容以及第二契约内容进行契约编码,生成服务器对应的第一契约代码和客户端对应的第二契约代码,契约生成插件用于生成契约内容数据对应的契约数据包;
19.服务器将第一契约代码和第二契约代码确定为契约内容数据对应的契约代码。
20.结合第一方面,在一些可能的实现方式中,契约数据包中包括服务器对应的第一数据包和客户端对应的第二数据包,第二数据包中包括客户端与服务器之间的业务交互规则;
21.服务器对契约代码进行解析,得到契约代码中的契约数据结构,根据契约数据结构以及契约代码,生成契约内容数据对应的契约数据包,包括:
22.服务器采用契约生成插件中的契约解析器,分别对第一契约代码和第二契约代码进行解析,得到第一契约代码的第一数据结构和第二契约代码的第二数据结构,对第一数据结构和第二数据结构进行组合,得到契约代码的契约数据结构;
23.服务器获取序列化代码,对第二契约代码、契约数据结构以及序列化代码进行组合,生成客户端对应的第二数据包,序列化代码用于将业务数据转化为字节序列;
24.服务器获取反序列化代码,对第一契约代码、契约数据结构以及反序列代码进行组合,生成服务器对应的第一数据包,反序列化代码用于将字节序列转换为业务数据。
25.结合第一方面,在一些可能的实现方式中,在服务器对契约代码进行解析,得到契约代码中的契约数据结构之前,方法还包括:
26.服务器对契约代码进行验证;
27.若服务器确定契约代码未通过验证,则确定契约代码为无效代码,并输出提示信息,提示信息用于提示业务人员对契约代码进行校正;
28.若服务器确定契约代码通过验证,则确定契约代码为有效代码,执行服务器对契约代码进行解析,得到契约代码中的契约数据结构的步骤。
29.第二方面,本技术提供一种数据处理方法,包括:
30.客户端从契约库中获取目标业务对应的目标契约数据包,目标契约数据包中包括服务器与客户端之间的业务交互规则,以及服务器针对至少一个业务的业务处理逻辑;
31.客户端根据目标契约数据包包括的第二数据包,生成目标业务对应的业务请求数据,第二数据包中包括客户端与服务器之间的业务交互规则;
32.客户端从第二数据包中获取接口数据,根据接口数据,将业务请求数据发送给服
务器,以使服务器根据业务请求数据进行业务处理。
33.结合第二方面,在一些可能的实现方式中,客户端根据目标契约数据包包括的第二数据包,生成目标业务对应的业务请求数据,包括:
34.客户端从目标契约数据包包括的第二数据包中,获取目标业务的目标业务标识对应的业务数据种类和业务数据格式;
35.客户端根据业务数据种类,获取目标业务对应的候选业务数据;
36.客户端采用业务数据格式对候选业务数据进行格式化处理,得到目标业务对应的目标业务数据;
37.客户端对目标业务标识以及目标业务数据进行组合,生成目标业务对应的业务请求数据。
38.第三方面,本技术提供一种数据处理装置,包括:
39.接收模块,用于服务器接收客户端发送的与目标业务相关联的业务请求数据,业务请求数据包括目标业务的目标业务标识和目标业务数据;
40.第一获取模块,用于服务器从契约库中获取目标业务标识对应的目标契约数据包,目标契约数据包中包括服务器与客户端之间的业务交互规则,以及服务器针对至少一个业务的业务处理逻辑;
41.第二获取模块,用于服务器从目标契约数据包包括的第一数据包中,获取目标业务标识对应的目标业务处理逻辑,第一数据包中包括服务器针对至少一个业务的业务处理逻辑;
42.处理模块,用于服务器根据目标业务处理逻辑,对目标业务数据进行处理。
43.第四方面,本技术提供一种数据处理装置,包括:
44.第三获取模块,用于客户端从契约库中获取目标业务对应的目标契约数据包,目标契约数据包中包括服务器与客户端之间的业务交互规则,以及服务器针对至少一个业务的业务处理逻辑;
45.第二生成模块,用于客户端根据目标契约数据包包括的第二数据包,生成目标业务对应的业务请求数据,第二数据包中包括客户端与服务器之间的业务交互规则;
46.发送模块,用于客户端从第二数据包中获取接口数据,根据接口数据,将业务请求数据发送给服务器,以使服务器根据业务请求数据进行业务处理。
47.第五方面,本技术提供了一种计算机设备,包括存储器和处理器,存储器与处理器相连,存储器用于存储计算机程序,处理器用于调用计算机程序,以使得该计算机设备执行上述第一方面或上述第二方面提供的方法。
48.第六方面,本技术提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序适于由处理器加载并执行,以使得具有处理器的计算机设备执行上述第一方面或上述第二方面提供的方法。
49.第七方面,本技术一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面或上述第二方面中的方法。
50.本技术实施例中,通过服务器接收客户端发送的与目标业务相关联的业务请求数
据,业务请求数据包括目标业务的目标业务标识和目标业务数据,服务器从契约库中获取目标业务标识对应的目标契约数据包。业务请求数据是客户端从契约库中获取目标业务对应的目标契约数据包,根据该目标契约数据包生成的业务请求数据。该契约库中包括一个或者多个契约数据包,是服务器预先生成并存储至契约库中的,当契约有更新时,服务器可以直接在契约库中对契约数据包进行更新,各个客户端直接在契约库中调用更新后的契约数据包即可,各个客户端端不用手动更新契约数据包,可以提高契约的更新效率。服务器和客户端可以直接从契约库中获取目标业务标识对应的目标契约数据包,而不用编程人员编写契约实现代码,可以提高数据交互的效率。服务器从目标契约数据包包括的第一数据包中,获取目标业务标识对应的目标业务处理逻辑,第一数据包中包括服务器针对至少一个业务的业务处理逻辑。服务器根据目标业务处理逻辑,对目标业务数据进行处理。在本技术实施例中,服务器可以直接从契约库中获取目标业务标识对应的目标契约数据包,从目标契约数据包包括的第一数据包中获取目标业务标识对应的目标业务处理逻辑,采用该目标业务处理逻辑便可以对目标业务数据进行业务处理,而不用编写契约实现代码,也不用人工对契约进行维护,可以提高契约管理的效率。
附图说明
51.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
52.图1是本技术实施例提供的一种数据处理系统的架构示意图;
53.图2是本技术实施例提供的一种数据处理方法的流程示意图;
54.图3是本技术实施例提供的一种生成契约数据包的示意图;
55.图4是本技术实施例提供的一种契约数据包的示意图;
56.图5是本技术实施例提供的一种生成契约数据包的示意图;
57.图6是本技术实施例提供的一种数据处理方法的流程示意图;
58.图7是本技术实施例提供的一种契约数据包生成和调用的示意图;
59.图8是本技术实施例提供的一种数据处理方法的流程示意图;
60.图9是本技术实施例提供的一种数据处理装置的结构示意图;
61.图10是本技术实施例提供的一种数据处理装置的结构示意图;
62.图11是本技术实施例提供的一种计算机设备的结构示意图;
63.图12是本技术实施例提供的一种计算机设备的结构示意图。
具体实施方式
64.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
65.见图1,图1是本技术实施例提供的一种数据处理系统的结构示意图。如图1所示,
该数据处理系统可以包括服务器10和用户终端集群。该用户终端集群可以包括一个或者多个用户终端,这里将不对用户终端的数量进行限制。如图1所示,具体可以包括用户终端100a、用户终端100b、用户终端100c、

、用户终端100n。如图1所示,用户终端100a、用户终端100b、用户终端100c、

、用户终端100n可以分别与上述服务器10进行网络连接,以便于每个用户终端可以通过该网络连接与服务器10进行数据交互。
66.其中,该用户终端集群中的每个用户终端均可以包括:智能手机、平板电脑、笔记本电脑、桌上型电脑、可穿戴设备、智能家居、头戴设备等具有数据处理的智能终端。应当理解,如图1所示的用户终端集群中的每个用户终端均可以安装有目标应用(即应用客户端),当该应用客户端运行于各用户终端中时,可以分别与上述图1所示的服务器10之间进行数据交互。
67.其中,如图1所示,该服务器10可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。
68.为便于理解,本技术实施例可以在图1所示的多个用户终端中选择一个用户终端作为目标用户终端,该目标用户终端可以包括:智能手机、平板电脑、笔记本电脑、桌上型电脑、智能电视等携带数据处理功能的智能终端。例如,为便于理解,本技术实施例可以将图1所示的用户终端100a作为目标用户终端为例。当用户终端100a需要进行目标业务的业务处理时,该目标业务可以是指扣款服务、转账服务、存款服务等。用户终端100a可以从契约库中获取目标业务对应的目标契约数据包,该目标契约数据包中包括服务器与客户端(即用户终端)之间的业务交互规则,以及服务器针对至少一个业务的业务处理逻辑。用户终端100a可以根据目标契约数据包包括的第二数据包,生成目标业务对应的业务请求数据,从第二数据包中获取数据接口,根据该数据接口,将业务请求数据发送给服务器10。服务器10接收到用户终端100a发送的与目标业务相关联的业务请求数据后,可以从契约库中获取业务请求数据中目标业务标识对应的目标契约数据包。服务器10可以从目标契约数据包包括的第一数据包中,获取目标业务标识对应的目标业务处理逻辑,根据该目标业务处理逻辑,对目标业务数据进行处理。这样,用户终端100a与服务器10均可以在契约库中获取与目标业务对应的目标契约数据包,通过该目标契约包便可以进行数据交互,而不用自己编写数据交互代码,可以提高数据交互的效率以及提高契约管理的效率。
69.请参见图2,图2是本技术实施例提供的一种数据处理方法的流程示意图。该数据处理方法可由客户端和服务器交互执行,该客户端和服务器可以为服务器(如上述图1中的服务器10),或者用户终端(如上述图1的用户终端集群中的任一用户终端),或者为服务器和用户终端组成的系统,本技术对此不做限定。如图2所示,该数据处理方法可以包括步骤s101

s104。
70.s101,服务器接收客户端发送的与目标业务相关联的业务请求数据,业务请求数据包括目标业务的目标业务标识和目标业务数据。
71.具体的,当客户端需要进行目标业务对应的业务处理时,可以向服务器发送目标业务对应的业务请求数据,以请求服务器根据业务请求数据进行业务处理。其中,目标业务可以是扣款业务、转账业务、存款业务、查询业务等。服务器可以接收到客户端发送的与目
标业务相关联的业务请求数据,该业务请求数据中可以包括目标业务的目标业务标识和目标业务数据等内容。其中,客户端生成目标业务对应的业务请求数据时,可以从契约库中获取目标业务对应的目标契约数据包,从该目标契约数据包中获取第二数据包,该第二数据包中包括客户端与服务器进行交互的业务交互规则。客户端可以根据第二数据包生成目标业务对应的业务请求数据,该业务请求数据中包括目标业务的目标业务标识和目标业务数据。
72.可选的,在服务器接收客户端发送的与目标业务相关联的业务请求数据之前。服务器还可以获取n个业务对应的契约内容数据,对契约内容数据进行契约编码,得到契约内容数据对应的契约代码,契约内容数据包括服务器与客户端之间的业务交互规则,以及服务器针对n个业务的业务处理逻辑,n为正整数,例如,n可以取值为1,2,3...。服务器对契约代码进行解析,得到契约代码中的契约数据结构,根据契约数据结构以及契约代码,生成契约内容数据对应的契约数据包,服务器将契约数据包存储至契约库中。
73.具体的,服务器可以获取n个业务对应的契约内容数据,即该契约内容数据中包括客户端与服务器在进行n个业务中每个业务时,分别对应的业务交互规则,以及服务器进行n个业务中每个业务时所需要的业务处理逻辑,即该契约内容数据可以是指服务器与客户端,或者,客户端与客户端之间如何进行数据交互的协议内容。服务器获取n个业务对应的契约内容数据后,可以对契约内容数据进行契约编码,得到契约内容数据对应的契约代码,即对契约内容数据进行代码转换,得到契约内容数据对应的契约代码。服务器可以对契约代码进行戒子,得到契约代码中的契约数据结构,根据该契约数据结构以及契约代码,生成契约内容数据对应的契约数据包。服务器生成n个业务对应的契约数据包后,可以将该契约数据包存储至契约库,这样,客户端以及服务器可以直接从契约库中获取契约数据包进行数据交互,而不用客户端自己生成契约实现代码,可以提高数据交互的效率,以及提高契约管理的效率。
74.其中,契约内容数据中包括两部分,一部分是关于服务器的交互约定内容,另一部分是关于客户端的交互约定内容。其中,客户端的交互约定内容规定了客户端在进行某个业务处理过程中,需要执行的业务操作,如客户端在进行某个业务处理时,需要上传怎样的交互数据,以及上传怎样格式的交互数据,以及上传至哪里等业务操作。换句话说,客户端的交互约定内容包含客户端需要上传的业务数据种类、业务数据的数据格式以及上传至目的地的接口数据等内容。服务器的交互约定内容中规定了服务器在业务处理过程中应当执行的业务操作,如服务器的交互约定内容可以包括服务器在业务处理过程中的业务处理逻辑。业务处理逻辑可以是指具体完成对应业务的实现过程,如在扣款业务中,服务器可以根据扣款业务对应的业务处理逻辑,完成业务请求数据中业务数据对应的扣款服务。例如,服务器在接收到客户端发送的针对某个业务的业务请求数据后,具体怎样根据客户端发送的业务请求数据进行业务处理。
75.可选的,契约内容数据包括服务器对应的第一契约内容和客户端对应的第二契约内容。服务器获取n个业务对应的契约内容数据,对契约内容数据进行契约编码,得到契约内容数据对应的契约代码的具体方式可以包括:服务器获取n个业务对应的第一契约内容和n个业务对应的第二契约内容。服务器采用契约生成插件中的编码器,分别对第一契约内容以及第二契约内容进行契约编码,生成服务器对应的第一契约代码和客户端对应的第二
契约代码,契约生成插件用于生成契约内容数据对应的契约数据包。服务器将第一契约代码和第二契约代码确定为契约内容数据对应的契约代码。
76.具体的,服务器可以获取n个业务对应的第一契约内容和n个业务对应的第二契约内容,第一契约内容是指关于服务器的交互约定内容,规定了服务器在业务处理过程中应当执行的业务操作,第二契约内容是指关于客户端的交互约定内容,规定了客户端在进行某个业务处理过程中,需要执行的业务操作。服务器采用契约生成插件中的编码器,分别对第一契约内容以及第二契约内容进行契约编码,生成服务器对应的第一契约代码和客户端对应的第二契约代码。服务器可以将第一契约代码与第二契约代码进行组合,得到组合后的第一契约代码和第二契约代码,将组合后的第一契约代码和第二契约代码确定为契约内容数据对应的契约代码。其中,契约生成插件是一种基于接口定义语言(interface definition language,idl)生成的契约生成工具,契约生成插件包括编码器、契约解析器以及推送器。契约生成插件用于根据用户输入的契约内容数据生成对应的契约数据包。编码器用于将契约内容数据转换成契约代码,契约解析器用于对契约代码进行解析,生成契约数据包,推送器用于将契约数据包推送到契约库中,该契约数据包中包括n个业务对应的业务交互规则和业务处理逻辑。需要说明的是,idl是一种接口定义语言,语法简洁直观,方便编写和查看,支持基本类型和结构体。契约数据包(即契约jar)的英文名称为java archive,可以是一种软件包文件,通常用于聚合大量的java类文件、相关的元数据和资源(文本、图片等)文件到一个文件中,以便开发java平台应用软件或库。
77.可选的,契约数据包中包括服务器对应的第一数据包和客户端对应的第二数据包,第二数据包中包括客户端与服务器之间的业务交互规则。服务器对契约代码进行解析,得到契约代码中的契约数据结构,根据契约数据结构以及契约代码,生成契约内容数据对应的契约数据包的具体方式可以包括:服务器采用契约生成插件中的契约解析器,分别对第一契约代码和第二契约代码进行解析,得到第一契约代码的第一数据结构和第二契约代码的第二数据结构。服务器对第一数据结构和第二数据结构进行组合,得到契约代码的契约数据结构,获取序列化代码,对第二契约代码、契约数据结构以及序列化代码进行组合,生成客户端对应的第二数据包,序列化代码用于将业务数据转化为字节序列。服务器获取反序列化代码,对第一契约代码、契约数据结构以及反序列代码进行组合,生成服务器对应的第一数据包,反序列化代码用于将字节序列转换为业务数据。
78.具体的,服务器可以采用契约生成插件中的契约解析器,分别对第一契约代码和第二契约代码进行解析,得到第一契约代码中的第一数据结构和第二契约代码中的第二数据结构。服务器可以对第一数据结构和第二数据结构进行组合,得到契约代码的契约数据结构,该契约数据结构可以是指契约的组成部分(如组成字段),即契约的构成。比如,在扣款业务中,扣款业务契约的契约数据结构包括交易算法、交易类型、交易对象名称、交易日期等字段。服务器可以获取序列化代码,对第二契约代码、契约数据结构以及序列化代码进行组合,对组合后的第二契约代码、契约数据结构以及序列化代码进行打包,生成客户端对应的第二数据包。其中,序列化代码用于将业务数据转化为字节序列,该字节序列用于在网络中传输,序列化代码可以是指java(一门面向对象编程语言)序列化代码、protobuf(google protocol buffers,google提供一个具有高效的协议数据交换格式工具库)序列化代码等。其中,第二数据包中包括客户端与服务器进行客户端与服务器之间的业务交互
规则,如客户端需要上传至服务器的业务数据种类、业务数据的数据格式以及上传至服务器的接口数据等。
79.其中,服务器可以获取反序列化代码,对第一契约代码、契约数据结构以及反序列代码进行组合,生成服务器对应的第一数据包,反序列化代码用于将字节序列转换为业务数据。反序列化代码可以是java(一门面向对象编程语言)反序列化代码、protobuf(google protocol buffers,google提供一个具有高效的协议数据交换格式工具库)反序列化代码等。其中,当第二数据包中的序列化代码与第一数据包中的反序列化代码为同一代码类型,即若第二数据包中的序列化代码为java序列化代码时,则第一数据包中的反序列化代码为java反序列化代码;若第二数据包中的序列化代码为protobuf序列化代码,则第一数据包中的反序列化代码为protobuf反序列化代码。第一数据包中包含客户端与服务器进行客户端与服务器之间的业务交互规则,以及服务器针对至少一个业务的业务处理逻辑。
80.其中,通过在第一数据包中写入反序列化代码,以及在第二数据包中写入序列化代码,客户端在获取第二数据包后,可以直接在第二数据包中根据契约数据结构,填入相关业务的业务数据即可。第二数据包中的序列化代码,可以将业务数据进行转换成字节序列发送给服务器,而不用客户端对业务数据进行序列化。服务器接收到客户端发送的业务数据后,可以采用第一数据包中的反序列化代码,对业务数据对应的字节序列进行反序列化,得到业务数据。这样,保证了代码的一致性,避免各个客户端使用不一样的代码编写具体实现的代码,并提高契约开发效率。
81.可选的,服务器生成契约数据包的过程中,在服务器对契约代码进行解析,得到契约代码中的契约数据结构之前,服务器还可以对契约代码进行验证。若服务器确定契约代码未通过验证,则确定契约代码为无效代码,并输出提示信息,该提示信息用于提示业务人员对契约代码进行校正。若服务器确定契约代码通过验证,则确定契约代码为有效代码,执行服务器对契约代码进行解析,得到契约代码中的契约数据结构的步骤。
82.具体的,服务器通过契约生成插件中的编码,对契约内容数据进行契约编码,得到契约内容数据对应的契约代码后,可以对该契约代码进行验证,如可以验证该契约代码是否可以执行,或者,验证该契约代码是否存在错误代码。若服务器确定契约代码未通过验证,则确定契约代码为无效代码,并输出提示信息,该提示信息用于提示业务人员对契约代码进行校正。若服务器确定契约代码通过验证,则确定契约代码为有效代码,执行服务器对契约代码进行解析,得到契约代码中的契约数据结构的步骤。例如,服务器可以验证契约代码中是否存在语法错误,若校验通过,则说明契约代码中不存在语法错误,则对该契约代码进行解析,得到契约代码对应的契约数据包。若校验不通过,则说明契约代码中存在语法错误,则向编程人员展示存在语法错误的契约代码信息,以使编程人员对错误的契约代码信息进行修改。
83.可选的,服务器生成契约内容数据对应的契约数据包后,可以通过契约生成插件中的推送器(即publish)将契约数据包推送到契约库(即maven库)中。契约库(即maven库)是一个项目管理工具,用来存储契约数据包的具体内容。同时,服务器可以生成契约数据包对应的契约文档,将该契约文档发布到指定地点,如将契约文档推送到契约网站(即契约portal)上,该契约文档中包含了契约数据包中的具体代码信息,以及该具体代码信息对应的注释信息,该契约文档可以用于编程人员或者其他技术人员了解契约数据包。服务器还
可以生成契约数据包对应的契约服务,并将该契约服务发布到指定地点,如将契约服务推送到契约网站(即契约portal)上,该契约服务是对契约数据包中的契约内容进行语言描述,即描述服务端与客户端,或者,客户端与客户端之间的约定交互方式的内容。
84.例如,如图3所示,图3是本技术实施例提供的一种生成契约数据包的示意图,如图3所示,以服务器采用契约生成插件生成第一契约对应的第一契约数据包为例,对生成契约数据包的具体过程进行详细描述。服务器可以在契约生成插件的契约仓库(即wmc

idl

repo)中创建第一契约对应的文件夹,其中,可以按照契约的名称或者标识等信息创建文件夹,一个契约对应一个文件夹。其中,也可以按照交互对象的应用类型创建文件夹,如创建app类的文件夹,计算机设备类的文件等。如在创建第一契约数据包的文件夹,可以将该第一契约数据包的文件类型设置为app类的文件夹。如以创建第一契约对应的第一文件夹为例,在契约仓库中创建第一文件夹后,对该第一文件夹进行初始化(即执行init命令),获取第一文件夹对应的可支持编码类型(即type thrift)、项目配置文件(即config properties)以及契约编写库。可支持编码类型定义了契约可以支持的一些编码类型,项目配置文件包含了一些配置字段。该配置字段包括文件夹标识字段、文件夹名称字段等,编程人员可以对这些配置字段的值进行编写,对第一文件夹的名称、标号等信息进行配置,如将第一文件夹的名称配置为第一契约的名称,该名称的定义会决定最终生成的契约文档的名称。如以第一契约的名称对第一文件夹的名称字段进行配置后,最终生成服务器对应的第一数据包为[第一契约]

server.jar,则生成客户端对应的第二数据包[第一契约]

client.jar。
[0085]
其中,契约编写库中包括契约约定文件夹(即bean文件夹)、数据传输对象文件夹(即dto文件夹)、枚举文件夹(即enums文件夹)以及接口文件夹等。契约约定文件夹(即bean文件夹)用于存储请求约定内容(即request契约)和回应约定内容(即response契约)。该契约约定文件夹可以是指javabean,javabean是执行某个特定任务的对象或组件,可以将功能、处理、值、数据库访问和其他任何以java代码创造的对象进行打包。契约编写库中还包括数据传输对象文件夹(即dto文件夹),用于存储非请求约定内容和非回应约定内容的数据传输对象。dto是指客户端与服务器之间的数据传输对象。契约编写库中还包括枚举文件夹(即enums文件夹),用于存放枚举。该枚举是指一个被命名的整型常数的集合,是指一种特殊的类,它代表了一组固定的常量值。枚举经常用来设计一些状态常量。比如,星期几就是枚举的一个最好例子,因为他们被限制在周一、周二、周三、周四、周五、周六和周日。契约编写库中还包括接口文件夹,该接口文件夹用于存放服务器与客户端分别对应的接口数据。编程人员可以在各个文件夹中输入相应的契约内容数据,如点开契约约定文件夹,在该契约约定文件夹中输入请求约定方式和回应约定方式分别对应的具体内容。
[0086]
其中,服务器可以安装idea(全称intellij idea,是java编程语言开发的集成环境),用于在编程人员输入契约内容数据时,进行输入语法提示。对第一文件夹进行契约内容数据输入完成后,服务器可以将该契约内容数据生成契约代码,并获取该契约代码的契约数据结构,根据契约代码对该契约数据结构进行填充,得到第一契约对应的第一契约数据包。
[0087]
如图4所示,图4是本技术实施例提供的一种契约数据包的示意图,如图4所示,图4为客户端对应的契约数据包中第一数据包的具体内容。客户端可以从契约库中引入一个或
者多个契约数据包,如图4所示,客户端引入的第一契约数据包中可以包括获取资产业务、获取资产概要业务、获取已结束资产业务等。在获取资产业务中,包括获取资产业务对应的接口数据(即请求地址),通过该地址可以将数据发给目的地(如服务器)。如图4所示,获取资产业务对应的业务数据种类(即请求参数的名称)包括标识(即用户id)、类别(即资产类别)、型号(即资产型号)、货币(即币种)等,以及每个业务数据种类对应的数据格式(如整型(即整数)、字符串等),以及需要返回的业务数据种类(即返回参数)包括市场值、收益等,以及返回参数的数据格式等。客户端可以根据该业务数据种类、业务数据种类对应的数据格式生成业务请求数据,并通过接口数据将该业务请求数据发送给目标对象(如服务器)。第二契约数据包以及第三契约数据包也包括业务数据种类以及业务数据种类对应的数据格式。
[0088]
如图5所示,图5是本技术实施例提供的一种生成契约数据包的示意图,如图5所示,编程人员输入契约内容数据后,服务器可以通过契约仓库建立所需要生成的契约对应的契约文件夹,通过对该契约文件夹进行初始化,获取该契约文件夹对应的可支持编码类型(即type thrift)、项目配置文件(即config properties)以及契约编写库。编程人员可以根据可支持编码类型(即type thrift)、项目配置文件(即config properties)以及契约编写库,输入契约内容数据。服务器可以根据契约生成插件中的编写器,根据该契约内容数据生成契约代码,根据契约生成插件中的契约解析器,对契约代码进行解析,得到契约代码对应的契约数据结构,并根据该契约数据结构生成契约数据包。服务器可以通过根据契约生成插件中的推送器,将契约数据包储存至契约库(即maven库)中,以使客户端从契约库中调用契约数据包,与服务器进行数据交互。
[0089]
其中,在存储契约数据包时,可以确定契约数据包的版本号,如0.0.x版(用于表示第x次更新版本),以此来指示契约数据包是否为最新版本。例如,第一次生成契约数据包时,可以将该契约数据包的表示设置为契约数据包

0.0.1版,其包括的第一数据包的标识可以设置为第一数据包

0.0.1版,其包括的第二数据包的标识可以设置为第二数据包0.0.1版。服务器还可以生成契约数据包对应的契约文档和契约服务,并将契约文档和契约服务发布到契约网站(即契约portal)中,对该契约进行公示。这样,当业务对应的契约内容有变化时,服务器可以生成更新后的契约数据包后,可以将该更新后的契约数据包的标识设置为上轮契约数据包的标识加一,并将跟新后的契约数据包存储至契约库中,客户端可以直接从契约库中获取更新后的契约数据包,各个客户端不用自行编写契约的实现代码,可以避免各个客户端采用的编写代码不同,导致不能实现服务器与客户端,或者客户端与客户端之间的联调。另外,客户端可以直接从契约库中获取更新后的契约数据包,而不用服务器通知各个客户端自行修改契约内容,可以提高契约的更新效率。
[0090]
s102,服务器从契约库中获取目标业务标识对应的目标契约数据包,目标契约数据包中包括服务器与客户端之间的业务交互规则,以及服务器针对至少一个业务的业务处理逻辑。
[0091]
具体的,服务器接收到客户端发送的与目标业务相关联的业务请求数据后,可以从契约库中获取业务请求数据中目标业务标识对应的目标契约数据包,该目标契约数据包中包括服务器与客户端之间的业务交互规则,以及服务器针对至少一个业务的业务处理逻辑。契约库中包括一个或者多个契约数据包,每个契约数据包包含第一数据包和第二数据
包。第一数据包包含n个业务的业务标识以及n个业务中每个业务的业务标识对应的业务处理逻辑,第二数据包包含n个业务分别对应的业务标识、n个业务中每个业务的业务标识对应的业务数据种类、每种业务数据种类的数据格式以及上传至服务器的数据接口等信息。服务器可以根据目标业务标识与契约数据包的包标识之间的映射表,从契约库中获取目标业务的目标业务标识对应的契约数据包。
[0092]
其中,服务器可以利用工具gradle,从契约库中获取目标业务标识对应的目标契约数据包。gradle是一个项目自动化构建开源工具,使用了一种特定领域语言(dsl)来声明项目设置,配置简单,是一款通用灵活的构建工具,支持maven仓库,ivy仓库,支持传递性依赖管理。
[0093]
s103,服务器从目标契约数据包包括的第一数据包中,获取目标业务标识对应的目标业务处理逻辑,第一数据包中包括服务器针对至少一个业务的业务处理逻辑。
[0094]
具体的,服务器可以根据目标业务的目标业务标识,从目标契约数据包包含的第一数据包中,获取目标业务标识对应的目标业务处理逻辑,该第一数据包中包括服务器针对至少一个业务的业务处理逻辑,该业务处理逻辑可以是指进行业务处理的具体实现过程,如在扣款业务中,服务器可以根据扣款业务对应的业务处理逻辑,完成业务请求数据中业务数据对应的扣款服务。
[0095]
s104,服务器根据目标业务处理逻辑,对目标业务数据进行处理。
[0096]
具体的,服务器获得目标业务处理逻辑后,可以根据目标业务处理逻辑,对目标业务数据进行处理。
[0097]
例如,目标业务可以是指扣款业务,当服务器接收到客户端发送的与扣款业务相关联的扣款业务请求数据后,可以根据扣款业务的扣款业务请求数据,从契约库中获取扣款业务请求数据中扣款业务标识对应的目标契约数据包。服务器可以从目标契约数据包包含的第一数据包中,获取扣款业务标识对应的扣款业务处理逻辑。如该扣款业务处理逻辑中包含对待验证信息(如被扣款方输入的密码信息、指纹信息或者人脸信息等)进行验证,验证请求扣款方是否具有扣款权限,若验证通过,则根据请求扣款方对应的请求方数据(如车费、购物费等费用),对被扣款方执行扣款。
[0098]
例如,甲方需要从乙方购买一件商品,乙方(即请求扣款方)所属客户端可以获取甲方(即被扣款方)的第一用户信息(如姓名、账户等信息)、验证信息(如甲方输入的密码信息、指纹信息或者人脸信息等)以及乙方((即请求扣款方)的第二用户信息(如请求扣款方的账号信息以及商品价格等)等,从契约库中获取扣款业务对应的目标契约数据包。客户端可以根据目标契约数据包中第二数据包,对第一用户信息、验证信息以及第二用户信息等信息进行收集整合,如根据第二数据包中扣款业务对应的格式要求,对第一用户信息、验证信息以及第二用户信息进行数据格式转换。客户端生成甲方与乙方之间对应的扣款业务请求数据后,可以将该扣款业务请求数据发送给服务器。
[0099]
其中,服务器接收到客户端发送的甲方与乙方之间扣款业务对应的扣款业务请求数据后,可以根据扣款业务请求数据中扣款业务对应的扣款业务标识,从契约库中获取扣款业务标识对应的目标契约数据包。服务器可以从扣款业务标识对应的目标契约数据包包含的第一数据包中,获取扣款业务标识对应的业务处理逻辑,根据该业务处理逻辑进行扣款。如扣款业务标识对应的业务处理逻辑可以是对扣款业务请求数据中验证信息进行验
证,若验证通过(即甲方输入的密码信息、指纹信息或者人脸信息为真实数据),则根据甲方(即被扣款方)的第一用户信息(如姓名、账户等信息),从甲方的账户中扣除商品价格对应的费用数额,并根据乙方((即请求扣款方)的第二用户信息(如请求扣款方的账号信息以及商品价格等),在乙方的账户中增加商品价格对应的费用数额。
[0100]
在本技术实施例中,通过服务器接收客户端发送的与目标业务相关联的业务请求数据,业务请求数据包括目标业务的目标业务标识和目标业务数据,服务器从契约库中获取目标业务标识对应的目标契约数据包。业务请求数据是客户端从契约库中获取目标业务对应的目标契约数据包,根据该目标契约数据包生成的业务请求数据。该契约库中包括一个或者多个契约数据包,是服务器预先生成并存储至契约库中的,当契约有更新时,服务器可以直接在契约库中对契约数据包进行更新,各个客户端直接在契约库中调用更新后的契约数据包即可,各个客户端端不用手动更新契约数据包,可以提高契约的更新效率。服务器和客户端可以直接从契约库中获取目标业务标识对应的目标契约数据包,而不用编程人员编写契约实现代码,可以提高数据交互的效率。服务器从目标契约数据包包括的第一数据包中,获取目标业务标识对应的目标业务处理逻辑,第一数据包中包括服务器针对至少一个业务的业务处理逻辑。服务器根据目标业务处理逻辑,对目标业务数据进行处理。在本技术实施例中,服务器可以直接从契约库中获取目标业务标识对应的目标契约数据包,从目标契约数据包包括的第一数据包中获取目标业务标识对应的目标业务处理逻辑,采用该目标业务处理逻辑便可以对目标业务数据进行业务处理,而不用编写契约实现代码,也不用人工对契约进行维护,可以提高契约管理的效率。
[0101]
请参见图6,图6是本技术实施例提供的一种数据处理方法的流程示意图。该数据处理方法可由计算机设备执行,该计算机设备可以为服务器(如上述图1中的服务器10),或者用户终端(如上述图1的用户终端集群中的任一用户终端),或者为服务器和用户终端组成的系统,本技术对此不做限定。如图6所示,该数据处理方法可以包括步骤s201

s203。
[0102]
s201,客户端从契约库中获取目标业务对应的目标契约数据包。
[0103]
具体的,当客户端需要进行目标业务对应的业务处理时,可以从业务标识与契约数据包的包标识之间的映射表中,查询目标业务的目标业务标识对应的目标契约数据包的目标包标识,从契约库中获取目标包标识对应的目标契约数据包,作为目标业务对应的目标契约数据包。目标契约数据包中包括服务器与客户端之间的业务交互规则,以及服务器针对至少一个业务的业务处理逻辑。其中,契约库中包含一个或者多个契约数据包,每个契约数据包中包含一个或者多个业务对应的业务交互规则以及业务处理逻辑,客户端和服务器可以根据该契约数据包进行一个或者多个业务对应的数据交互。
[0104]
其中,客户端可以利用工具gradle,从契约库中获取目标业务标识对应的目标契约数据包。gradle是一个项目自动化构建开源工具,使用了一种特定领域语言(dsl)来声明项目设置,配置简单,是一款通用灵活的构建工具,支持maven仓库,ivy仓库,支持传递性依赖管理。
[0105]
s202,客户端根据目标契约数据包包括的第二数据包,生成目标业务对应的业务请求数据。
[0106]
具体的,客户端可以根据目标契约数据包包括的第二数据包,生成目标业务对应的业务请求数据。该第二数据包包括客户端与服务器之间的业务交互规则,如第二数据包
中包括在进行目标业务处理时,客户端需要上传至服务器的目标业务处理的业务数据种类、业务数据的数据格式以及上传至服务器的接口数据等。这样,客户端可以根据业务数据种类收集数据,并根据业务数据的数据格式对收集到的数据进行格式化处理,生成目标业务对应的业务请求数据。
[0107]
可选的,客户端根据目标契约数据包包括的第二数据包,生成目标业务对应的业务请求数据的具体方式可以包括:客户端从目标契约数据包包括的第二数据包中,获取目标业务的目标业务标识对应的业务数据种类和业务数据格式。客户端根据业务数据种类,获取目标业务对应的候选业务数据,客户端采用业务数据格式对候选业务数据进行格式化处理,得到目标业务对应的目标业务数据。客户端对目标业务标识以及目标业务数据进行组合,生成目标业务对应的业务请求数据。
[0108]
具体的,客户端可以从目标契约数据包包括的第二数据包中,获取目标业务的目标业务标识对应的业务数据种类和业务数据格式,客户端可以根据第二数据包中存储的与目标业务相关联的业务数据种类,收集目标业务对应的候选业务数据。客户端可以采用第二数据包中存储的与目标业务相关联的业务数据格式,对目标业务对应的候选业务数据进行格式化处理,得到目标业务对应的目标业务数据。客户端可以将目标业务的目标业务标识和目标业务数据进行组合,生成目标业务对应的业务请求数据。
[0109]
例如,当甲方所属客户端需要对丙方实行扣款100元业务处理时,客户端可以根据扣款业务对应的扣款标识,从契约库中获取扣款标识对应的目标契约数据包。客户端可以从目标契约数据包包含的第二数据包中,获取扣款标识对应的业务数据种类和业务数据格式,如扣款标识对应的业务数据种类包括:被扣款方的用户信息、被扣款方的身份验证信息、请求扣款方的用户信息以及扣款事由等。客户端可以根据扣款标识对应的业务数据种类,收集被扣款方的用户信息(如被扣款方的银行卡信息、身份信息)、被扣款方的身份验证信息(被扣款方的密码信息、指纹信息或者人脸信息为真实数据)、请求扣款方的用户信息(如请求扣款方的银行卡信息、身份信息)以及扣款事由(如商品交易、业务交易)等,将收集到的数据确定为候选业务数据。客户端可以根据业务数据格式,对候选业务数据进行格式化处理,得到目标业务数据,如银行卡信息为数字格式,当客户端收集到的数据为文字卡号(如壹貳叄肆伍陆等),则可以将该文字卡号转化为数字格式(如123456)。
[0110]
s203,客户端从第二数据包中获取接口数据,根据接口数据,将业务请求数据发送给服务器,以使服务器根据业务请求数据进行业务处理。
[0111]
具体的,客户端获得目标业务对应的业务请求数据后,可以从第二数据包中获取接口数据,该接口数据是指服务器的地址信息,客户端可以通过该地址信息,将业务请求数据发送给服务器。客户端获得接口数据后,可以将业务请求数据发送到接口数据对应的地址,将业务请求数据发送给服务器,以使服务器根据业务请求数据进行业务处理。
[0112]
如图7所示,图7是本技术实施例提供的一种契约数据包生成和调用的示意图,如图7所示,服务器可以获取契约内容数据,通过契约生成插件生成契约数据包,并将该契约数据包存储至契约库中。服务器还可以生成契约数据包对应的契约文档(即契约代码信息,供编程人员观看)以及契约服务(即契约内容,供管理人员或者大众观看),并发布契约文档和契约服务。客户端1可以从契约库中导入契约数据包,通过该契约数据包调用服务器。客户端2也可以从契约库中导入契约数据包,通过该契约数据包调用服务器。
[0113]
在本技术实施例中,通过客户端从契约库中获取目标业务对应的目标契约数据包,目标契约数据包中包括服务器与客户端之间的业务交互规则,以及服务器针对至少一个业务的业务处理逻辑。客户端根据目标契约数据包包括的第二数据包,生成目标业务对应的业务请求数据,第二数据包中包括客户端与服务器之间的业务交互规则。客户端从第二数据包中获取接口数据,根据接口数据,将业务请求数据发送给服务器,以使服务器根据业务请求数据进行业务处理。在本技术中,客户端可以直接在契约库中获取目标业务对应的目标契约数据包,通过调用该契约数据包便可以进行业务交互,而不用编写契约实现代码,可以提高数据交互效率,避免各个客户端编写契约实现代码信息的语言不同,导致后期维护成本大,提高契约管理的效率。另外,当契约库中的契约数据包有更新时,可以直接去契约库中获取更新后的契约数据包,而不用自己对原来的契约数据包进行人工更新,可以提高契约的更新效率。
[0114]
请参见图8,图8是本技术实施例提供的一种数据处理方法的流程示意图。该数据处理方法可由计算机设备执行,该计算机设备可以为服务器(如上述图1中的服务器10),或者用户终端(如上述图1的用户终端集群中的任一用户终端),或者为服务器和用户终端组成的系统,本技术对此不做限定。如图8所示,该数据处理方法可以包括步骤s301

s307。
[0115]
s301,客户端从契约库中获取目标业务对应的目标契约数据包。
[0116]
s302,客户端根据目标契约数据包包括的第二数据包,生成目标业务对应的业务请求数据。
[0117]
s303,客户端从第二数据包中获取接口数据,根据接口数据,将业务请求数据发送给服务器,以使服务器根据业务请求数据进行业务处理。
[0118]
具体的,客户端可以获取契约库对应的接口地址,从契约库中获取目标业务对应的目标契约数据包,从目标契约数据包包括的第二数据包中,获取目标业务对应的业务数据种类以及业务数据格式。客户端可以根据目标业务对应的业务数据种类以及业务数据格式,生成目标业务对应的业务请求数据。客户端可以根据第二数据包中的接口数据,将业务请求数据发送给服务器,以使服务器根据业务请求数据进行业务处理。s301

s303的具体内容可以参看图6中步骤s201

s203所描述的内容,本技术实施例在次不再累述。
[0119]
s304,服务器接收客户端发送的与目标业务相关联的业务请求数据。
[0120]
s305,服务器从契约库中获取目标业务标识对应的目标契约数据包。
[0121]
s306,服务器从目标契约数据包包括的第一数据包中,获取目标业务标识对应的目标业务处理逻辑。
[0122]
s307,服务器根据目标业务处理逻辑,对目标业务数据进行处理。
[0123]
具体的,服务器节接收到客户端发送的与目标业务相关联的业务请求数据后,可以根据契约库的接口地址,从契约库中获取目标业务标识对应的目标契约数据包。服务器可以从目标契约数据包包括的第一数据包中,获取目标业务标识对应的目标业务处理逻辑,并根据该目标业务处理逻辑,对目标业务数据进行处理。本技术实施例中步骤s304

s307的具体内容可以参看图2中步骤s101

s104的内容,本技术实施例在此不再累述。
[0124]
请参见图9,图9是本技术实施例提供的一种数据处理装置1的结构示意图。上述数据处理装置1可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该数据处理装置1为一个应用软件;该数据处理装置1可以用于执行本技术实施例提供的数据处理
方法中的相应步骤。如图9所示,该数据处理装置1可以包括:接收模块11、第一获取模块12、第二获取模块13、处理模块14、契约编码模块15、第一生成模块16、存储模块17、验证模块18、输出模块19、解析模块20。
[0125]
接收模块11,用于服务器接收客户端发送的与目标业务相关联的业务请求数据,业务请求数据包括目标业务的目标业务标识和目标业务数据;
[0126]
第一获取模块12,用于服务器从契约库中获取目标业务标识对应的目标契约数据包,目标契约数据包中包括服务器与客户端之间的业务交互规则,以及服务器针对至少一个业务的业务处理逻辑;
[0127]
第二获取模块13,用于服务器从目标契约数据包包括的第一数据包中,获取目标业务标识对应的目标业务处理逻辑,第一数据包中包括服务器针对至少一个业务的业务处理逻辑;
[0128]
处理模块14,用于服务器根据目标业务处理逻辑,对目标业务数据进行处理。
[0129]
其中,数据处理装置1还包括:
[0130]
契约编码模块15,用于服务器获取n个业务对应的契约内容数据,对契约内容数据进行契约编码,得到契约内容数据对应的契约代码,契约内容数据包括服务器与客户端之间的业务交互规则,以及服务器针对n个业务的业务处理逻辑,n为正整数;
[0131]
第一生成模块16,用于服务器对契约代码进行解析,得到契约代码中的契约数据结构,根据契约数据结构以及契约代码,生成契约内容数据对应的契约数据包;
[0132]
存储模块17,用于服务器将契约数据包存储至契约库中。
[0133]
其中,契约内容数据包括服务器对应的第一契约内容和客户端对应的第二契约内容;
[0134]
契约编码模块15包括:
[0135]
第一获取单元1501,用于服务器获取n个业务对应的第一契约内容和n个业务对应的第二契约内容;
[0136]
第一生成单元1502,用于服务器采用契约生成插件中的编码器,分别对第一契约内容以及第二契约内容进行契约编码,生成服务器对应的第一契约代码和客户端对应的第二契约代码,契约生成插件用于生成契约内容数据对应的契约数据包;
[0137]
确定单元1503,用于服务器将第一契约代码和第二契约代码确定为契约内容数据对应的契约代码。
[0138]
其中,契约数据包中包括服务器对应的第一数据包和客户端对应的第二数据包,第二数据包中包括客户端与服务器之间的业务交互规则;
[0139]
第一生成模块16包括:
[0140]
解析单元1601,用于服务器采用契约生成插件中的契约解析器,分别对第一契约代码和第二契约代码进行解析,得到第一契约代码的第一数据结构和第二契约代码的第二数据结构,对第一数据结构和第二数据结构进行组合,得到契约代码的契约数据结构;
[0141]
第二生成单元1602,用于服务器获取序列化代码,对第二契约代码、契约数据结构以及序列化代码进行组合,生成客户端对应的第二数据包,序列化代码用于将业务数据转化为字节序列;
[0142]
第三生成单元1603,用于服务器获取反序列化代码,对第一契约代码、契约数据结
构以及反序列代码进行组合,生成服务器对应的第一数据包,反序列化代码用于将字节序列转换为业务数据。
[0143]
其中,数据处理装置1还包括:
[0144]
验证模块18,用于服务器对契约代码进行验证;
[0145]
输出模块19,用于若服务器确定契约代码未通过验证,则确定契约代码为无效代码,并输出提示信息,提示信息用于提示业务人员对契约代码进行校正;
[0146]
解析模块20,用于若服务器确定契约代码通过验证,则确定契约代码为有效代码,执行服务器对契约代码进行解析,得到契约代码中的契约数据结构的步骤。
[0147]
根据本技术的一个实施例,图9所示的数据处理装置1中的各个模块可以分别或全部合并为一个或若干个单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个子单元,可以实现同样的操作,而不影响本技术的实施例的技术效果的实现。上述模块是基于逻辑功能划分的,在实际应用中,一个模块的功能也可以由多个单元来实现,或者多个模块的功能由一个单元实现。在本技术的其它实施例中,数据处理装置1也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
[0148]
在本技术实施例中,通过服务器接收客户端发送的与目标业务相关联的业务请求数据,业务请求数据包括目标业务的目标业务标识和目标业务数据,服务器从契约库中获取目标业务标识对应的目标契约数据包。业务请求数据是客户端从契约库中获取目标业务对应的目标契约数据包,根据该目标契约数据包生成的业务请求数据。该契约库中包括一个或者多个契约数据包,是服务器预先生成并存储至契约库中的,当契约有更新时,服务器可以直接在契约库中对契约数据包进行更新,各个客户端直接在契约库中调用更新后的契约数据包即可,各个客户端端不用手动更新契约数据包,可以提高契约的更新效率。服务器和客户端可以直接从契约库中获取目标业务标识对应的目标契约数据包,而不用编程人员编写契约实现代码,可以提高数据交互的效率。服务器从目标契约数据包包括的第一数据包中,获取目标业务标识对应的目标业务处理逻辑,第一数据包中包括服务器针对至少一个业务的业务处理逻辑。服务器根据目标业务处理逻辑,对目标业务数据进行处理。在本技术实施例中,服务器可以直接从契约库中获取目标业务标识对应的目标契约数据包,从目标契约数据包包括的第一数据包中获取目标业务标识对应的目标业务处理逻辑,采用该目标业务处理逻辑便可以对目标业务数据进行业务处理,而不用编写契约实现代码,也不用人工对契约进行维护,可以提高契约管理的效率。
[0149]
请参见图10,图10是本技术实施例提供的一种数据处理装置2的结构示意图。上述数据处理装置2可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该数据处理装置2为一个应用软件;该数据处理装置2可以用于执行本技术实施例提供的数据处理方法中的相应步骤。如图10所示,该数据处理装置2可以包括:第三获取模块21、第二生成模块22、发送模块23。
[0150]
第三获取模块21,用于客户端从契约库中获取目标业务对应的目标契约数据包,目标契约数据包中包括服务器与客户端之间的业务交互规则,以及服务器针对至少一个业务的业务处理逻辑;
[0151]
第二生成模块22,用于客户端根据目标契约数据包包括的第二数据包,生成目标
业务对应的业务请求数据,第二数据包中包括客户端与服务器之间的业务交互规则;
[0152]
发送模块23,用于客户端从第二数据包中获取接口数据,根据接口数据,将业务请求数据发送给服务器,以使服务器根据业务请求数据进行业务处理。
[0153]
其中,第二生成模块22包括:
[0154]
第二获取单元2201,用于客户端从目标契约数据包包括的第二数据包中,获取目标业务的目标业务标识对应的业务数据种类和业务数据格式;
[0155]
第三获取单元2202,用于客户端根据业务数据种类,获取目标业务对应的候选业务数据;
[0156]
格式化处理单元2203,用于客户端采用业务数据格式对候选业务数据进行格式化处理,得到目标业务对应的目标业务数据;
[0157]
组合单元2204,用于客户端对目标业务标识以及目标业务数据进行组合,生成目标业务对应的业务请求数据。
[0158]
根据本技术的一个实施例,图10所示的数据处理装置2中的各个模块可以分别或全部合并为一个或若干个单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个子单元,可以实现同样的操作,而不影响本技术的实施例的技术效果的实现。上述模块是基于逻辑功能划分的,在实际应用中,一个模块的功能也可以由多个单元来实现,或者多个模块的功能由一个单元实现。在本技术的其它实施例中,数据处理装置2也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
[0159]
在本技术实施例中,通过客户端从契约库中获取目标业务对应的目标契约数据包,目标契约数据包中包括服务器与客户端之间的业务交互规则,以及服务器针对至少一个业务的业务处理逻辑。客户端根据目标契约数据包包括的第二数据包,生成目标业务对应的业务请求数据,第二数据包中包括客户端与服务器之间的业务交互规则。客户端从第二数据包中获取接口数据,根据接口数据,将业务请求数据发送给服务器,以使服务器根据业务请求数据进行业务处理。在本技术中,客户端可以直接在契约库中获取目标业务对应的目标契约数据包,通过调用该契约数据包便可以进行业务交互,而不用编写契约实现代码,可以提高数据交互效率,避免各个客户端编写契约实现代码信息的语言不同,导致后期维护成本大,提高契约管理的效率。另外,当契约库中的契约数据包有更新时,可以直接去契约库中获取更新后的契约数据包,而不用自己对原来的契约数据包进行人工更新,可以提高契约的更新效率。
[0160]
请参见图11,图11是本技术实施例提供的一种计算机设备的结构示意图。如图11所示,上述计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:目标用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,目标用户接口1003可以包括显示屏(display)、键盘(keyboard),可选目标用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi

fi接口)。存储器1005可以是高速ram存储器,也可以是非易失性的存储器(non

volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图11所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通
信模块、目标用户接口模块以及设备控制应用程序。
[0161]
在图11所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而目标用户接口1003主要用于为目标用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
[0162]
服务器接收客户端发送的与目标业务相关联的业务请求数据,业务请求数据包括目标业务的目标业务标识和目标业务数据;
[0163]
服务器从契约库中获取目标业务标识对应的目标契约数据包,目标契约数据包中包括服务器与客户端之间的业务交互规则,以及服务器针对至少一个业务的业务处理逻辑;
[0164]
服务器从目标契约数据包包括的第一数据包中,获取目标业务标识对应的目标业务处理逻辑,第一数据包中包括服务器针对至少一个业务的业务处理逻辑;
[0165]
服务器根据目标业务处理逻辑,对目标业务数据进行处理。
[0166]
应当理解,本技术实施例中所描述的计算机设备1000可执行前文图2所对应实施例中对数据处理方法的描述,也可执行前文图9所对应实施例中对数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
[0167]
请参见图12,图12是本技术实施例提供的一种计算机设备的结构示意图。如图12所示,该计算机设备2000可以包括:处理器2001,网络接口2004和存储器2005,此外,上述计算机设备2000还可以包括:用户接口2003,和至少一个通信总线2002。其中,通信总线2002用于实现这些组件之间的连接通信。其中,用户接口2003可以包括显示屏(display)、键盘(keyboard),可选用户接口2003还可以包括标准的有线接口、无线接口。可选的,网络接口2004可以包括标准的有线接口、无线接口(如wi

fi接口)。存储器2005可以是高速ram存储器,也可以是非不稳定的存储器(non

volatile memory),例如至少一个磁盘存储器。可选的,存储器2005还可以是至少一个位于远离前述处理器2001的存储装置。如图12所示,作为一种计算机可读存储介质的存储器2005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
[0168]
在如图12所示的计算机设备2000中,网络接口2004可提供网络通讯功能;而用户接口2003主要用于为用户提供输入的接口;而处理器2001可以用于调用存储器2005中存储的设备控制应用程序,以实现:
[0169]
客户端从契约库中获取目标业务对应的目标契约数据包,目标契约数据包中包括服务器与客户端之间的业务交互规则,以及服务器针对至少一个业务的业务处理逻辑;
[0170]
客户端根据目标契约数据包包括的第二数据包,生成目标业务对应的业务请求数据,第二数据包中包括客户端与服务器之间的业务交互规则;
[0171]
客户端从第二数据包中获取接口数据,根据接口数据,将业务请求数据发送给服务器,以使服务器根据业务请求数据进行业务处理。
[0172]
应当理解,本技术实施例中所描述的计算机设备2000可执行前文图6所对应实施例中对数据处理方法的描述,也可执行前文图10所对应实施例中对数据处理装置2的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
[0173]
此外,这里需要指出的是:本技术实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及数据处理装置所执行的计算机程序,且计算机程序包
括程序指令,当处理器执行程序指令时,能够执行前文图2或者图8所对应实施例中对数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本技术所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本技术方法实施例的描述。作为示例,程序指令可被部署在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行,分布在多个地点且通过通信网络互连的多个计算设备可以组成区块链系统。
[0174]
此外,需要说明的是:本技术实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或者计算机程序可以包括计算机指令,该计算机指令可以存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器可以执行该计算机指令,使得该计算机设备执行前文图2或者图8所对应实施例中对数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本技术所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本技术方法实施例的描述。
[0175]
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。
[0176]
本技术实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
[0177]
本技术实施例装置中的模块可以根据实际需要进行合并、划分和删减。
[0178]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁盘、光盘、只读存储器(read

only memory,rom)或随机存储器(random access memory,ram)等。
[0179]
以上所揭露的仅为本技术较佳实施例而已,当然不能以此来限定本技术之权利范围,因此依本技术权利要求所作的等同变化,仍属本技术所涵盖的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1