CN108769028B - 组装报文的方法及装置 - Google Patents

组装报文的方法及装置 Download PDF

Info

Publication number
CN108769028B
CN108769028B CN201810550309.6A CN201810550309A CN108769028B CN 108769028 B CN108769028 B CN 108769028B CN 201810550309 A CN201810550309 A CN 201810550309A CN 108769028 B CN108769028 B CN 108769028B
Authority
CN
China
Prior art keywords
message
resource
processing
source data
logic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810550309.6A
Other languages
English (en)
Other versions
CN108769028A (zh
Inventor
魏超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201810550309.6A priority Critical patent/CN108769028B/zh
Publication of CN108769028A publication Critical patent/CN108769028A/zh
Application granted granted Critical
Publication of CN108769028B publication Critical patent/CN108769028B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/06Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/03Protocol definition or specification 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本说明书实施例提供一种组装报文的方法和装置,方法包括,首先确定基于源数据组装目标报文的报文规则,并确定报文规则中包括的报文逻辑,然后判断资源池中是否存在与上述报文逻辑匹配的处理资源。如果资源池中存在这样的处理资源,则将该第一处理资源添加到用于组装目标报文的组装资源中,以使得所述组装资源在被执行时,进行目标报文的组装。如此,将报文规则拆分为报文逻辑,并复用与报文逻辑对应的处理资源,从而快速组装报文。

Description

组装报文的方法及装置
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及组装报文的方法。
背景技术
随着计算机和互联网技术的发展,越来越多的业务通过互联网平台来实现。诸多互联网平台往往需要彼此交互数据,协作完成一整套业务处理。因此,许多处理平台都需要与多个外部机构,即其他平台,进行通信交互。例如,支付宝平台需要与多个外部机构,有时也称为渠道,进行交互,这样的外部机构或渠道例如包括,银行、基金公司、理财公司等等。与外部机构的交互通过报文来实现,交互过程实际上也是报文交互的过程。各个外部机构,根据机构的类型、要求的数据、数据的操作等等的不同,通常需要不同的报文,相应地,针对不同的外部机构,往往需要提供不同的报文组装逻辑。
常规的渠道报文组装方案,是根据渠道编号加交易编号设置对应的渠道报文组装逻辑。这些组装逻辑大体相似,仅在信息设置上会有取值方式的差异,但是却难以复用。因此,在每次需要接入新的渠道或者交易类型时,都需要重新编辑组装逻辑,并对新的逻辑进行验证,非常影响外部机构的接入效率和业务开展过程。另外,对于不同的报文标准,需要重新新建报文组装逻辑,在灵活性和效率性上都有严重不足。
因此,希望能有改进的方案,更加灵活、高效地进行报文的组装。
发明内容
本说明书一个或多个实施例描述了一种方法和装置,通过将报文规则拆分为报文逻辑操作,并复用与报文逻辑操作对应的处理资源,灵活、高效地进行报文的组装。
根据第一方面,提供了一种组装报文的方法,包括:
确定基于源数据组装目标报文的第一报文规则,所述源数据至少包括第一源数据,所述目标报文至少包括第一字段,所述第一报文规则至少包括,基于所述第一源数据生成所述第一字段的第一报文逻辑;
判断资源池中是否存在与所述第一报文逻辑匹配的第一处理资源,所述第一处理资源用于对第一输入进行第一处理操作以获得第一输出,所述第一输入适用于所述第一源数据,所述第一处理操作与所述第一报文逻辑相对应;
在所述资源池中存在所述第一处理资源的情况下,将所述第一处理资源添加到用于组装目标报文的组装资源中,以使得所述组装资源在被执行时,进行目标报文的组装。
在一个实施例中,在资源池中不存在上述第一处理资源的情况下,针对所述第一报文逻辑生成所述第一处理资源;并将所述第一处理资源添加到所述组装资源中,以及添加到资源池中。
根据一种实施方式,目标报文的字段包括由第一键、第一值构成的第一键值对。
相应地,上述第一处理资源被配置为,将第一源数据作为第一输入,对所述源数据执行第一处理操作,将第一输出作为所述第一值。
在一个实施例中,还将映射模块添加到组装资源中,所述映射模块配置为,通过查阅词典,将所述源数据映射为所述第一键。
根据一种实施方式,还判断上述第一报文规则是否与在先的第二报文规则一致;在所述第一报文规则和第二报文规则一致的情况下,将所述第二报文规则对应的处理资源的集合作为所述组装资源。
根据一种实施方式,上述第一报文规则还包括第二逻辑,所述第二逻辑的执行依赖于所述第一逻辑的执行。在这样的情况下,所述方法还包括:将第二处理资源添加到所述执行资源中,并将所述第二处理资源设置为,在所述第一处理资源之后执行,其中所述第二处理资源用于对第二输入进行第二处理操作,所述第二处理操作与所述第二逻辑相对应。
相应地,上述组装资源在被执行时,先执行所述第一处理资源,之后将所述第一输出作为所述第二输入,执行所述第二处理资源。
根据第二方面,提供一种组装报文的装置,包括:
报文规则确定单元,配置为确定基于源数据组装目标报文的第一报文规则,所述源数据至少包括第一源数据,所述目标报文至少包括第一字段,所述第一报文规则至少包括,基于所述第一源数据生成所述第一字段的第一报文逻辑;
处理资源判断单元,判断资源池中是否存在与所述第一报文逻辑匹配的第一处理资源,所述第一处理资源用于对第一输入进行第一处理操作以获得第一输出,所述第一输入适用于所述第一源数据,所述第一处理操作与所述第一报文逻辑相对应;
添加单元,在所述资源池中存在所述第一处理资源的情况下,将所述第一处理资源添加到用于组装目标报文的组装资源中,以使得所述组装资源在被执行时,进行目标报文的组装。
根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
根据第四方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
通过本说明书实施例,将渠道和报文规则相分离,并复用报文操作对应的处理资源,如此,在针对报文规则进行报文组装时,只需要从资源池中选取可用的处理资源进行组合和配置,从而加速生成新的报文规则。并且,随着渠道的不断增长,资源池不断丰富,可用的处理资源不断增加,渠道接入的效率会越来越高。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书披露的一个实施例的实施场景示意图;
图2示出根据一个实施例的组装报文的方法流程图;
图3示出源数据和目标报文的一个示例;
图4示出源数据和目标报文的另一个示例;
图5示出通过匹配处理资源建立组装资源的具体示例;
图6示出根据一个实施例的链式报文组装示意图;
图7示出根据一个实施例的组装装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书披露的一个实施例的实施场景示意图。如图1所示,计算平台100(例如,支付宝服务器)与多个外部机构或渠道(A,B,C,D,E)进行报文交互,这些渠道例如是银行、基金公司、理财公司、商户等等。更具体地,计算平台100可以包含渠道层,报文组装层,以及业务层,渠道层用于与各个渠道进行对接,业务层用于执行各种上层业务,报文组装层位于渠道层和业务层之间,用于报文的组装。更具体地,报文组装层可以基于业务数据进行报文组装,使得渠道层利用组装的报文与外部渠道进行通信。报文组装层对业务层可以是完全透明的,使得业务层无需知道与渠道交互的报文组装逻辑。
为了使得报文组装的过程更加灵活、高效,根据说明书的实施例,将报文组装方式,或称为报文规则,拆分为原子化的报文逻辑或报文操作,用对应的处理资源来执行这样的报文操作,并建立资源池来存储上述处理资源。如此,在需要接入新的渠道时,首先确定该渠道对应的报文规则,并将报文规则拆分为各个报文操作,然后从资源池中选取与各个报文操作匹配的处理资源进行拼装即可。如此,通过分离渠道和报文规则,并复用报文操作对应的处理资源,将重新编辑或新建报文组装逻辑的过程,转化为从资源池中选取可用的处理资源进行组合的过程,从而加速生成新的报文规则。如果资源池中不存在与某项报文操作匹配的处理资源,则为该报文操作新建处理资源,并将该处理资源添加到资源池中。如此,随着渠道的不断增长,资源池不断丰富,可用的处理资源不断增加,渠道接入的效率会越来越高。下面描述以上过程的具体执行方式。
图2示出根据一个实施例的组装报文的方法流程图。如图2所示,该方法包括:步骤21,确定基于源数据组装目标报文的第一报文规则,所述源数据至少包括第一源数据,所述目标报文至少包括第一字段,所述第一报文规则至少包括,基于所述第一源数据生成所述第一字段的第一报文逻辑;步骤22,判断资源池中是否存在与所述第一报文逻辑匹配的第一处理资源,所述第一处理资源用于对第一输入进行第一处理操作以获得第一输出,所述第一输入适用于所述第一源数据,所述第一处理操作与所述第一报文逻辑相对应;以及步骤23,在资源池中存在所述第一处理资源的情况下,将所述第一处理资源添加到用于组装目标报文的执行资源中,以使得所述执行资源在被执行时,进行目标报文的组装。下面结合具体例子,描述以上各个步骤的执行方式。
如前所述,在本说明书的实施例中,将报文组装方式拆分为原子化的报文逻辑或报文操作(这两个用语在下文中可替换),用资源池来存储用于执行各个报文操作的处理资源。在此基础上,由于接入新的渠道/外部机构等原因,需要组装新的报文时,就可以执行图2所示的方法。在该方法的描述中,当前需要组装的报文被称为目标报文。如图2所示,首先在步骤21,确定组装目标报文的报文规则(为了区分起见,将其称为第一报文规则)。一般地,报文规则限定了,从源数据生成目标报文的数据组装方式或数据组装逻辑,与源数据的数据内容、数据类型、目标报文的格式、渠道的要求等均有关系。相应地,在步骤21,需要根据上述因素的至少一部分,确定当前要组装的目标报文的报文规则。
进一步地,在该步骤中,还将报文规则进行“分解”,确定出其中包含的各项报文逻辑或报文操作。更具体地,一项报文逻辑可以是基于一部分数据(源数据或中间数据)生成目标报文中的一部分字段的操作逻辑。下面针对任意一项报文逻辑,在此称为第一报文逻辑,进行描述。假定该第一报文逻辑是基于一部分源数据(称为第一源数据)生成一部分目标报文的字段(称为第一字段)的操作逻辑。
对于上述的第一报文逻辑,在步骤22,判断资源池中是否存在与该第一报文逻辑匹配的处理资源。处理资源是一种字段处理单元,包含输入、输出和处理操作三个要素,其中处理操作对应一种算法或策略,描述一类值的处理方式。换而言之,处理资源对输入进行处理操作,来获得输出。输入、输出和处理操作的三要素中任意一个要素不同,在资源池中相当于不同的处理资源。资源池中的各个处理资源可以对应于各种报文规则中所涉及的各种报文逻辑。相应地,与某项特定的报文逻辑匹配的处理资源,需要具有与该报文逻辑相适应的输入、输出和处理操作。具体地,对于上述的第一报文逻辑,与之匹配的处理资源,在此称为第一处理资源,用于对第一输入进行第一处理操作以获得第一输出,其中第一输入适用于第一报文逻辑所基于的数据(即第一源数据),第一处理操作与第一报文逻辑相对应。
在一个实施例中,在将各个处理资源存入资源池时,即建立报文逻辑与处理资源之间的映射关系。如此,在步骤22,通过上述映射关系,可以确定出资源池中是否存在与第一报文逻辑匹配的第一处理资源。在另一实施例中,将资源池中各个已有的处理资源的三要素与上述第一报文逻辑进行对比,从而确定资源池中是否存在相应的第一处理资源。
如果资源池中存在与第一报文逻辑匹配的第一处理资源,那么在步骤23,将第一处理资源添加到用于组装目标报文的组装资源中。可以理解,组装资源是用于执行目标报文组装的模块。根据以上实施例,组装资源可以包含若干处理资源的集合。当执行该组装资源时,其中的各个处理资源得到执行,通过这些处理资源,执行目标报文的报文逻辑,从而实现目标报文的组装。
在一个实施例中,如果资源池中不存在与上述第一报文逻辑匹配的第一处理资源,那么在步骤24,针对该第一报文逻辑生成第一处理资源。如前所述,该第一处理资源需要具有与该第一报文逻辑相适应的输入、输出和处理操作。具体地,第一处理资源的输入,即第一输入,需要适用于第一源数据,第一处理资源的处理操作,即第一处理操作,需要与第一报文逻辑相对应。然后在步骤25,将所述第一处理资源添加到所述资源池。并且,回到步骤23,将第一处理资源添加到组装资源中。需要理解,在执行步骤24的分支的情况下,步骤25和23可以并行执行,或以任意先后顺序执行。
下面结合具体例子描述报文逻辑与处理资源。图3示出源数据和目标报文的一个示例。在图3的示例中,源数据包括多个数据段A1,A2,A3…Am,目标报文包括多个字段B1,B2,B3,…Bn。目标报文包含的各个字段的数据内容、数据类型、字节大小、排列顺序等,由处理平台与外部机构预先约定。假定字段B1是对数据段A1中数据求和而获得,那么如果将字段B1作为第一字段,相应的第一源数据即为数据段A1中的数据,相应的第一报文逻辑即为数据求和。对于这样的第一报文逻辑,对应的第一处理资源的三要素可以是,适用于数据段A中数据的第一输入,与数据求和相对应的第一处理操作,以及与字段B1相适应的第一输出。
图4示出源数据和目标报文的另一个示例。在图4的例子中,报文规则将源数据组装为键值对(key,value)形式的目标报文,也就是说,目标报文包含若干键值对。实践中,JSON,XML等格式的报文均是采用键值对的形式。在该示例中,仅示出一部分源数据和目标报文的一个字段,即一个键值对。一般地,键值对中的键(key)用于描述该字段的含义、属性等,而值(value)则通过一些运算逻辑而生成,也就是采用报文逻辑而生成。例如,图4所示例的源数据包括获取的数据dbtrName,假定要基于该数据,采用上下文策略(第一报文逻辑)生成第一键值对中的值。那么,通过预设的映射关系,可以确定出这样的第一处理资源,该处理资源以上述数据为输入,对其进行上下文处理操作,即读取数据的上下文,将上下文中的值作为输出,填充报文字段。在图4的例子中,处理资源从上下文数据中读取上下文字符串“Alipay(UK)Limited”作为输出,生成键值对中的值。另一方面就是要确定键值对中的键。如前所述,键是对字段含义、属性的一种定义或描述。在一些情况下,可以直接基于一些源数据得到键。在另一些情况下,为了隔离不同场景的报文标准差异,例如国内业务、国际业务中对于同一字段含义的不同命名,采用词典来进行键的映射。相应地,在组装资源中添加映射模块,映射模块配置为,通过查阅词典,将源数据映射为键,添加到键值对的字段中。例如,对于图4的源数据,通过查阅词典,将源数据dbtrName映射为PmtInf.Dbtr.Nm。如此,获得了目标报文的一个键值对(PmtInf.Dbtr.Nm,Alipay(UK)Limited)。
可以理解,图4仅示例了一个键值对的生成过程,实际上,目标报文可以包含多个键值对,各个键值对(更具体地,其中的值)采用不同的报文逻辑生成。更一般地,报文规则中可以包含更多的报文逻辑。可以针对每个报文逻辑类似地执行步骤22-26,从而逐个处理各个报文逻辑。
在一个实施例中,在确定出目标报文的报文组装规则,即第一报文规则之后,在对资源池中的处理资源进行判断之前,首先判断该第一报文规则是否与在先的第二报文规则一致。也就是判断,先前是否有某个渠道使用了相同的报文规则。如果是,那么可以直接使用先前渠道的组装资源,也就是,将第二报文规则对应的处理资源的集合作为组装资源。如果并不存在与第一报文规则一致的在先的报文规则,那么才执行图2的步骤22和之后的步骤。
图5示出通过匹配处理资源建立组装资源的具体示例。下面以图5所示的渠道1-N为例,结合图2的流程,描述建立组装资源的过程。
对于接入的渠道1,在步骤21,确定其对应的报文组装方式为报文规则1。进一步地,假定该报文规则1至少包含报文逻辑1和报文逻辑2。在步骤22,确定资源池中已经存在与报文逻辑1对应的处理资源1,但是不存在与报文逻辑2对应的处理资源2。于是,直接使用该处理资源1,也就是,将其添加到组装资源中;然后,针对报文逻辑2生成处理资源2,将处理资源2添加到资源池并使用(也添加到组装资源中)。
接下来,接入渠道2。在步骤21,确定渠道2对应的报文组装方式为报文规则2。进一步地,假定该报文规则2至少包含报文逻辑2和报文逻辑3。在步骤22可以确定,资源池中已经存在与报文逻辑2对应的处理资源2(在处理报文规则1的过程中添加),但是不存在与报文逻辑3对应的处理资源3。于是,直接使用该处理资源2,也就是,将其添加到组装资源中;然后,针对报文逻辑3生成处理资源3,将处理资源3添加到资源池并使用。
接着,接入渠道3。在步骤21,确定渠道3对应的报文组装方式为报文规则3。假定报文规则3与先前使用的报文规则2完全一致。那么,可以直接使用渠道2的组装资源,也就是,将报文规则2对应的处理资源的集合(处理资源2和处理资源3)作为组装资源。
然后,以类似方式接入更多渠道。对于渠道N,假定在步骤21,确定渠道N对应的报文组装方式为报文规则N。进一步地,假定该报文规则N至少包含报文逻辑2,报文逻辑3和报文逻辑4。在步骤22可以确定,资源池中已经存在与报文逻辑2对应的处理资源2,与报文逻辑3对应的处理资源3,以及与报文逻辑4对应的处理资源4。于是,将处理资源2,3,4均添加到组装资源中,用以执行报文组装。
通过以上过程可以看到,报文规则被分解为报文逻辑,相应地,组装资源的生成过程变为从资源池中选取可用的处理资源进行组合的过程,从而加速生成新的报文规则。并且,随着渠道的不断增长,资源池不断丰富,可用的处理资源不断增加,渠道接入的效率会越来越高。
如上所述,通过选取可用的处理资源集合的方式来组装新的报文。进一步地,在一些情况下,报文规则不仅包含多个报文逻辑的组合,还涉及报文逻辑的执行顺序,例如某一字段的值依赖于另一个字段的计算中间值或者输出值。此时,不仅要选取对应的处理资源,还要配置各个处理资源的执行顺序,实现链式报文组装。
在一个实施例中,图2所述的第一报文规则除包含第一报文逻辑之外,还包括第二报文逻辑,所述第二报文逻辑的执行依赖于第一报文逻辑的执行结果。此时,组装目标报文的方法还包括,将与第二报文逻辑对应的第二处理资源添加到组装资源中,并将第二处理资源设置为,在第一处理资源之后执行。可以理解,与第二报文逻辑对应的第二处理资源用于对第二输入进行第二处理操作,其中第二处理操作与第二报文逻辑相对应。如此,在组装资源被执行时,按照预设的顺序,先执行第一处理资源,后执行第二处理资源,具体地,在执行第一处理资源之后,将第一处理资源的输出作为第二处理资源的输入,对其执行第二处理操作。
图6示出根据一个实施例的链式报文组装示意图。如图6所示,假定报文规则至少包含报文逻辑i和报文逻辑j,其中报文逻辑i对源数据进行操作运算,报文逻辑j的执行依赖于报文逻辑i的执行。为了实现链式报文组装,将与报文逻辑i对应的处理资源i,和与报文逻辑j对应的处理资源j都添加到组装资源中,并在组装资源中设置,先执行处理资源i,后执行处理资源j。如此,在组装资源被执行时,处理资源i先得到执行。于是,处理资源i读取源数据,对其进行与报文逻辑i对应的处理操作,并将处理操作的结果或中间数据存储在中间数据存储区。上述中间数据存储区可以是通用存储器中专用于存储中间数据的一块存储区,也可以是独立的存储器,甚至是分布式存储器,只要各个处理资源均可以访问即可。在执行处理资源i之后(可以是紧随处理资源i之后,也可以是还执行了其他处理资源之后),执行处理资源j。处理资源j从上述中间数据存储区读取处理资源i存入的中间数据,对该中间数据进行与报文逻辑j对应的处理操作,生成用于填充目标报文字段的数据。
下面描述一个链式报文组装的具体例子。在该例子中,目标报文MSG为资金调拨报文,包含多个键值对。假定生成该目标报文的报文规则至少包括报文逻辑L1和报文逻辑L2。另一方面,资源池中存在与上述报文逻辑L1和L2分别对应的处理资源A01和A02。表1示出处理资源A01和A02的各自的处理操作、操作说明、输入数据。
表1
Figure BDA0001681030880000111
根据实施例的步骤,在确定资源池中存在分别与报文逻辑L1和L2对应的处理资源A01和A02之后,分别将处理资源A01和A02添加到组装资源中。进一步地,根据报文逻辑L1和L2的执行逻辑,将处理资源A01和A02的执行顺序设定为先执行A01,后执行A02。
表2示出组装目标报文MSG的组装资源。
表2
Figure BDA0001681030880000112
Figure BDA0001681030880000121
以上的组装资源即可对源数据进行组装处理,获得目标报文MSG的部分字段。表3示出链式执行报文组装的执行结果。
表3
Figure BDA0001681030880000122
具体地,如表2和表3所示,首先利用处理资源A01进行处理操作。结合表1所示的处理资源A01的输入数据和处理操作的内容,处理资源A01读取付款账号和收款账号,并利用上下文策略对付款账号和收款账号进行处理操作。假定,根据上下文策略,用上下文中的值作为字段值,可以获得付款账号=account_01,收款账号=account_02。结合图4描述的实施例,处理资源中的处理操作主要用于生成键值对中的值,而其中的键往往需要通过查阅词典来确定。假定根据某常用报文标准设置词典,付款账号对应于键Dbtr.Nm,收款账号对应于键Cdtr.Nm,那么通过处理资源A01的处理操作,结合查阅词典的结果,可以得到键值对(Dbtr.Nm:account_01)和(Cdtr.Nm:account_02)。
接着,根据表2所示,在执行处理资源A01之后,继续执行处理资源A02。根据处理资源A02的处理操作,将合并标识设定为false。假定通过查阅上述报文标准设置词典,合并标识的键为btchBooking,那么,处理资源A02可以得到键值对(btchBooking:false)。
执行处理资源A01和A02之后的报文组装执行结果如表3示出。可以理解,在其他实施例中,报文规则可能涉及更多更复杂的报文逻辑,相应地,组装资源中将会包含更多的处理资源,并需要对这些处理资源的执行顺序进行更复杂的设置。
可以理解,不同的处理资源有可能需要读取不同部分的源数据,例如,在图3中,源数据被示意性地示出为包括多个数据段A1,A2,A3…Am,不同的处理资源可能需要处理不同的数据段。然而,不同数据段的源数据可能具有不同的读取方法,或者不同的读取深度,或者不同的取值方式。例如,需要通过方法/函数M1调用或读取数据段A1,而通过方法/函数M2读取数据段A2,而数据段A3的读取,则需要先调用函数M3,M3又嵌套调用另一函数,从而通过多层调用,经过更深的读取深度,才可以获取到。此外,这些数据段也可能具有不同的取值方式。
为了便于处理资源直接获取输入数据,在一个实施例中,还对源数据进行差异化预处理。也就是,对源数据中具有不同的读取方法,和/或不同的读取深度,和/或不同的取值方式的数据段,进行预处理,将其处理为位于统一容器中。这个预处理的过程可以包括,预先读取、存储、必要时的归一化,等等。如此,对源数据进行“扁平化”的预处理,消除其数据读取方式差异对处理资源的影响,进一步提高处理效率。
综合以上,可以看到,根据以上实施例,将渠道和报文规则相分离,并复用报文操作对应的处理资源,如此,在针对报文规则进行报文组装时,只需要从资源池中选取可用的处理资源进行组合和配置,从而加速生成新的报文规则。并且,随着渠道的不断增长,资源池不断丰富,可用的处理资源不断增加,渠道接入的效率会越来越高。
根据另一方面的实施例,还提供一种组装报文的装置。图7示出根据一个实施例的组装装置的示意性框图。如图7所示,组装装置700包括:报文规则确定单元710,配置为确定基于源数据组装目标报文的第一报文规则,所述源数据至少包括第一源数据,所述目标报文至少包括第一字段,所述第一报文规则至少包括,基于所述第一源数据生成所述第一字段的第一报文逻辑;处理资源判断单元720,判断资源池中是否存在与所述第一报文逻辑匹配的第一处理资源,所述第一处理资源用于对第一输入进行第一处理操作以获得第一输出,所述第一输入适用于所述第一源数据,所述第一处理操作与所述第一报文逻辑相对应;添加单元730,在所述资源池中存在所述第一处理资源的情况下,将所述第一处理资源添加到用于组装目标报文的组装资源中,以使得所述组装资源在被执行时,进行目标报文的组装。
在一个实施例中,装置700还包括生成单元740,配置为在所述资源池中不存在所述第一处理资源的情况下,针对所述第一报文逻辑生成所述第一处理资源;在这样的情况下,添加单元730还配置为,将第一处理资源添加到所述组装资源中;以及将所述第一处理资源添加到所述资源池中。
在一个实施例中,上述目标报文的字段包括由第一键、第一值构成的第一键值对。
在这样的情况下,上述第一处理资源被配置为,将第一源数据作为第一输入,对所述源数据执行第一处理操作,将第一输出作为第一键值对中的第一值。
在一个实施例中,添加单元730还配置为,将映射模块添加到组装资源中,所述映射模块配置为,通过查阅词典,将源数据映射为上述第一键值对中的第一键。
在一个实施例中,装置700还包括报文规则判断单元(未示出),配置为判断所述第一报文规则是否与在先的第二报文规则一致;并且在所述第一报文规则和第二报文规则一致的情况下,将所述第二报文规则对应的处理资源的集合作为所述组装资源。
根据一个实施例,上述第一报文规则还包括第二逻辑,第二逻辑的执行依赖于所述第一逻辑的执行。在这样的情况下,添加单元730还配置为:将与第二逻辑对应的第二处理资源添加到所述执行资源中,并将所述第二处理资源设置为,在所述第一处理资源之后执行。
相应地,在所述组装资源被执行时,先执行所述第一处理资源,之后将所述第一输出作为第二处理资源的输入,执行所述第二处理资源。
在一个实施例中,装置700还包括预处理单元(未示出),配置为对所述源数据进行差异化处理,所述源数据还包括第二源数据,所述第一源数据和所述第二源数据具有不同的读取方法,和/或不同的读取深度,和/或不同的取值方式,所述差异化处理包括,将所述第一源数据和第二源数据处理为位于统一容器中。
根据以上装置,以复用报文操作对应的处理资源的方式,加速生成新的报文规则。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2所述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

Claims (20)

1.一种组装报文的方法,包括:
确定基于源数据组装目标报文的第一报文规则,所述源数据至少包括第一源数据,所述目标报文至少包括第一字段,所述第一报文规则至少包括,基于所述第一源数据生成所述第一字段的第一报文逻辑;
判断资源池中是否存在与所述第一报文逻辑匹配的第一处理资源,所述第一处理资源用于对第一输入进行第一处理操作以获得第一输出,所述第一输入适用于所述第一源数据,所述第一处理操作与所述第一报文逻辑相对应;
在所述资源池中存在所述第一处理资源的情况下,将所述第一处理资源添加到用于组装目标报文的组装资源中,以使得所述组装资源在被执行时,进行目标报文的组装。
2.根据权利要求1所述的方法,还包括,在所述资源池中不存在所述第一处理资源的情况下:
针对所述第一报文逻辑生成所述第一处理资源;
将所述第一处理资源添加到所述组装资源中;以及
将所述第一处理资源添加到所述资源池中。
3.根据权利要求1所述的方法,其中所述第一字段包括由第一键、第一值构成的第一键值对。
4.根据权利要求3所述的方法,其中所述第一处理资源被配置为,将所述第一源数据作为所述第一输入,对所述源数据执行第一处理操作,将所述第一输出作为所述第一值。
5.根据权利要求3所述的方法,还包括,将映射模块添加到所述组装资源中,所述映射模块配置为,通过查阅词典,将所述源数据映射为所述第一键。
6.根据权利要求1所述的方法,还包括,
判断所述第一报文规则是否与在先的第二报文规则一致;
在所述第一报文规则和第二报文规则一致的情况下,将所述第二报文规则对应的处理资源的集合作为所述组装资源。
7.根据权利要求1所述的方法,其中所述第一报文规则还包括第二报文逻辑,所述第二报文逻辑的执行依赖于所述第一报文逻辑的执行;所述方法还包括:
将第二处理资源添加到所述组装资源中,并将所述第二处理资源设置为,在所述第一处理资源之后执行,其中所述第二处理资源用于对第二输入进行第二处理操作,所述第二处理操作与所述第二报文逻辑相对应。
8.根据权利要求7所述的方法,其中所述组装资源在被执行时,进行目标报文的组装包括:在执行所述第一处理资源之后,将所述第一输出作为所述第二输入,执行所述第二处理资源。
9.根据权利要求1所述的方法,还包括:对所述源数据进行差异化处理,所述源数据还包括第二源数据,所述第一源数据和所述第二源数据具有不同的读取方法,和/或不同的读取深度,和/或不同的取值方式,所述差异化处理包括,将所述第一源数据和第二源数据处理为位于统一容器中。
10.一种组装报文的装置,包括:
报文规则确定单元,配置为确定基于源数据组装目标报文的第一报文规则,所述源数据至少包括第一源数据,所述目标报文至少包括第一字段,所述第一报文规则至少包括,基于所述第一源数据生成所述第一字段的第一报文逻辑;
处理资源判断单元,判断资源池中是否存在与所述第一报文逻辑匹配的第一处理资源,所述第一处理资源用于对第一输入进行第一处理操作以获得第一输出,所述第一输入适用于所述第一源数据,所述第一处理操作与所述第一报文逻辑相对应;
添加单元,在所述资源池中存在所述第一处理资源的情况下,将所述第一处理资源添加到用于组装目标报文的组装资源中,以使得所述组装资源在被执行时,进行目标报文的组装。
11.根据权利要求10所述的装置,还包括,生成单元,配置为在所述资源池中不存在所述第一处理资源的情况下,针对所述第一报文逻辑生成所述第一处理资源;
所述添加单元还配置为,将所述第一处理资源添加到所述组装资源中;以及将所述第一处理资源添加到所述资源池中。
12.根据权利要求10所述的装置,其中所述第一字段包括由第一键、第一值构成的第一键值对。
13.根据权利要求12所述的装置,其中所述第一处理资源被配置为,将所述第一源数据作为所述第一输入,对所述源数据执行第一处理操作,将所述第一输出作为所述第一值。
14.根据权利要求12所述的装置,所述添加单元还配置为,将映射模块添加到所述组装资源中,所述映射模块配置为,通过查阅词典,将所述源数据映射为所述第一键。
15.根据权利要求10所述的装置,还包括,
报文规则判断单元,配置为判断所述第一报文规则是否与在先的第二报文规则一致;并且在所述第一报文规则和第二报文规则一致的情况下,将所述第二报文规则对应的处理资源的集合作为所述组装资源。
16.根据权利要求10所述的装置,其中所述第一报文规则还包括第二报文逻辑,所述第二报文逻辑的执行依赖于所述第一报文逻辑的执行;所述添加单元还配置为:
将第二处理资源添加到所述组装资源中,并将所述第二处理资源设置为,在所述第一处理资源之后执行,其中所述第二处理资源用于对第二输入进行第二处理操作,所述第二处理操作与所述第二报文逻辑相对应。
17.根据权利要求16所述的装置,其中所述组装资源在被执行时,进行目标报文的组装包括:在执行所述第一处理资源之后,将所述第一输出作为所述第二输入,执行所述第二处理资源。
18.根据权利要求16所述的装置,还包括:预处理单元,配置为对所述源数据进行差异化处理,所述源数据还包括第二源数据,所述第一源数据和所述第二源数据具有不同的读取方法,和/或不同的读取深度,和/或不同的取值方式,所述差异化处理包括,将所述第一源数据和第二源数据处理为位于统一容器中。
19.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-9中任一项的所述的方法。
20.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-9中任一项所述的方法。
CN201810550309.6A 2018-05-31 2018-05-31 组装报文的方法及装置 Active CN108769028B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810550309.6A CN108769028B (zh) 2018-05-31 2018-05-31 组装报文的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810550309.6A CN108769028B (zh) 2018-05-31 2018-05-31 组装报文的方法及装置

Publications (2)

Publication Number Publication Date
CN108769028A CN108769028A (zh) 2018-11-06
CN108769028B true CN108769028B (zh) 2020-09-29

Family

ID=64001419

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810550309.6A Active CN108769028B (zh) 2018-05-31 2018-05-31 组装报文的方法及装置

Country Status (1)

Country Link
CN (1) CN108769028B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112948306A (zh) * 2021-03-30 2021-06-11 中国建设银行股份有限公司 扩展系统接口的方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101764750A (zh) * 2009-12-07 2010-06-30 福建星网锐捷网络有限公司 报文封装方法和检测转发环路的方法、装置及网络设备
US8009681B2 (en) * 2007-03-21 2011-08-30 Ciena Corporation Methods and systems for interworking RSVP-based external control plane protocols with internal control plane protocols
CN102377506A (zh) * 2010-08-12 2012-03-14 盛科网络(苏州)有限公司 测试报文处理系统
CN105518610A (zh) * 2014-08-13 2016-04-20 华为技术有限公司 处理操作请求的存储系统、方法及装置
CN105528294A (zh) * 2015-12-29 2016-04-27 广东金赋信息科技有限公司 一种接口测试用例自动生成的方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8009681B2 (en) * 2007-03-21 2011-08-30 Ciena Corporation Methods and systems for interworking RSVP-based external control plane protocols with internal control plane protocols
CN101764750A (zh) * 2009-12-07 2010-06-30 福建星网锐捷网络有限公司 报文封装方法和检测转发环路的方法、装置及网络设备
CN102377506A (zh) * 2010-08-12 2012-03-14 盛科网络(苏州)有限公司 测试报文处理系统
CN105518610A (zh) * 2014-08-13 2016-04-20 华为技术有限公司 处理操作请求的存储系统、方法及装置
CN105528294A (zh) * 2015-12-29 2016-04-27 广东金赋信息科技有限公司 一种接口测试用例自动生成的方法及系统

Also Published As

Publication number Publication date
CN108769028A (zh) 2018-11-06

Similar Documents

Publication Publication Date Title
US10296307B2 (en) Method and system for template extraction based on source code similarity
US7721205B2 (en) Integration of composite objects in host applications
US20160019102A1 (en) Application pattern discovery
US20070203928A1 (en) EDI instance based transaction set definition
US7856415B2 (en) System and method for mapping events into a data structure
WO2021052338A1 (zh) 智能合约客户端程序的生成方法、系统、设备和介质
CN110806945B (zh) 接口对接方法、装置和计算机可读介质
CN112104709A (zh) 智能合约的处理方法、装置、介质及电子设备
WO2023024735A1 (zh) 用于隐私保护的机器学习算法脚本编译方法和编译器
CN108769028B (zh) 组装报文的方法及装置
CN115599347A (zh) 一种自动化代码开发实现方法和系统
CN111241180A (zh) 一种信息处理的方法、装置、设备及存储介质
CN111078573A (zh) 一种测试报文的生成方法及装置
CN114168149A (zh) 一种数据转换方法及装置
CN114816170A (zh) 规则方案生成方法、装置、介质及电子设备
CN111861695A (zh) 报文组装方法及装置
US8490051B2 (en) Generic interface for numeric types
CN114449063B (zh) 一种报文处理方法、装置及设备
CN110879710A (zh) 一种rpg程序自动转成java程序的方法
CN114219643A (zh) 一种交易调用方法、装置、设备及存储介质
CN109241164A (zh) 一种数据处理方法、装置、服务器及存储介质
KR102398543B1 (ko) 영지식 증명 알고리즘이 적용된 검증 가능한 블록체인 가상머신
CN116700842B (zh) 数据对象的读写方法、装置、计算设备及存储介质
CN109992293A (zh) Android系统组件版本信息的组装方法及装置
CN113537985B (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201022

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

Patentee after: Innovative advanced technology Co.,Ltd.

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

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201022

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

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.