CN112925523A - 对象比较方法、装置、设备及计算机可读介质 - Google Patents

对象比较方法、装置、设备及计算机可读介质 Download PDF

Info

Publication number
CN112925523A
CN112925523A CN202110231723.2A CN202110231723A CN112925523A CN 112925523 A CN112925523 A CN 112925523A CN 202110231723 A CN202110231723 A CN 202110231723A CN 112925523 A CN112925523 A CN 112925523A
Authority
CN
China
Prior art keywords
comparison
bytecode
code
comparator
field
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.)
Pending
Application number
CN202110231723.2A
Other languages
English (en)
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.)
JD Digital Technology Holdings Co Ltd
Original Assignee
JD Digital Technology Holdings Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by JD Digital Technology Holdings Co Ltd filed Critical JD Digital Technology Holdings Co Ltd
Priority to CN202110231723.2A priority Critical patent/CN112925523A/zh
Publication of CN112925523A publication Critical patent/CN112925523A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/02Banking, e.g. interest calculation or account maintenance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Software Systems (AREA)
  • Development Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Technology Law (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本申请涉及一种对象比较方法、装置、设备及计算机可读介质。该方法包括:获取待比较的第一对象和第二对象,第一对象和第二对象中包括金融业务中产生的资源交换数据;将第一对象和第二对象输入对象比较器,以利用对象比较器在编译原始代码得到的字节码文件中提取目标字节码进行比较,原始代码为第一对象和第二对象的比较方法的代码,目标字节码包括第一对象和第二对象之间所需比较的内容的字节码;根据对象比较器的比较结果确定第一对象和第二对象之间资源交换数据的变化关系。本申请使用对编译器编译之后机器能够识别的字节码来进行不同对象之间内容的比较,解决了不能灵活配置比较对象、比较字段、比较方法的技术问题。

Description

对象比较方法、装置、设备及计算机可读介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种对象比较方法、装置、设备及计算机可读介质。
背景技术
银行核心系统提供了基础的记账、结算等会计功能,是银行开展各项业务的基础,它是支撑银行运营最为关键的一套信息系统。银行核心系统在功能准确性、数据完整性上,对于银行正常运营至关重要。
目前,相关技术中,由于各家银行、银行的合作伙伴在业务特点以及发展需求上的不同,各家银行都会根据自身发展需求以及业务特点对银行核心系统单独设计开发相应的核心数据格式,以及进行升级改造或者是功能更新。这样一来,银行间数据文件的核对、校验等等程序十分复杂,不能灵活配置比较对象、比较字段、比较方法。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请提供了一种对象比较方法、装置、设备及计算机可读介质,以解决不能灵活配置比较对象、比较字段、比较方法的技术问题。
根据本申请实施例的一个方面,本申请提供了一种对象比较方法,包括:
获取待比较的第一对象和第二对象,第一对象和第二对象中包括金融业务中产生的资源交换数据;
将第一对象和第二对象输入对象比较器,以利用对象比较器在编译原始代码得到的字节码文件中提取目标字节码进行比较,原始代码为第一对象和第二对象的比较方法的代码,目标字节码包括第一对象和第二对象之间所需比较的内容的字节码;
根据对象比较器的比较结果确定第一对象和第二对象之间资源交换数据的变化关系。
可选地,将第一对象和第二对象输入对象比较器之前,该方法还包括按照如下方式配置对象比较器:
从原始代码中提取目标代码段,目标代码段用于记录第一对象和第二对象之间所需比较的内容和比较方法的接口,比较的内容和比较方法的接口为预先配置的信息;
将目标代码段传递至对象比较器,以使得对象比较器根据比较的内容提取目标字节码,并通过比较方法的接口调用比较方法的实现代码。
可选地,在利用对象比较器对第一对象和第二对象进行比较时,提取目标字节码且调用得到比较方法的实现代码后,该方法还包括:
利用目标字节码和比较方法的实现代码生成目标代码,以在目标代码被运行时按照比较方法比较第一对象和第二对象之间的比较的内容,目标代码的格式为字节码。
可选地,对象比较器根据比较的内容提取目标字节码包括:
从目标代码段中确定第一字段和第二字段,第一字段为第一对象的比较字段,第二字段为第二对象的比较字段;
在字节码文件中找到第一字段对应的第一字节码,并提取与第一字节码匹配的第二字节码,在字节码文件中找到第二字段对应的第三字节码,并提取与第三字节码匹配的第四字节码,第二字节码为第一字段的字段值所对应的字节码,第四字节码为第二字段的字段值所对应的字节码;
将第二字节码和第四字节码作为目标字节码。
可选地,对象比较器根据比较的内容提取目标字节码还包括:
从目标代码段中确定第一表达式和第二表达式,第一表达式用于确定第一字段中需要进行比较的字符,第二表达式用于确定第二字段中需要进行比较的字符;
利用第一表达式提取第一字节码中对应的字节码作为目标字节码,利用第二表达式提取第三字节码中对应的字节码作为目标字节码。
可选地,配置对象比较器还包括:
将至少一个比较规则保存在数据库,比较规则用于确定比较对象、比较字段及比较方法的接口中的至少一种;
在接收到对象比较请求的情况下,从数据库中调取与对象比较请求匹配的比较规则配置对象比较器。
可选地,根据对象比较器的比较结果确定第一对象和第二对象之间资源交换数据的变化关系包括:
利用比较结果确定第一对象和第二对象之间资源交换数据的差异;
确定资源交换数据的差异等级;
确定差异等级对应的变化关系,并输出变化关系对应的预设文本数据。
根据本申请实施例的另一方面,本申请提供了一种对象比较装置,包括:
对象获取模块,用于获取待比较的第一对象和第二对象,第一对象和第二对象中包括金融业务中产生的资源交换数据;
对象比较模块,用于将第一对象和第二对象输入对象比较器,以利用对象比较器在编译原始代码得到的字节码文件中提取目标字节码进行比较,原始代码为第一对象和第二对象的比较方法的代码,目标字节码包括第一对象和第二对象之间所需比较的内容的字节码;
变化关系确定模块,用于根据对象比较器的比较结果确定第一对象和第二对象之间资源交换数据的变化关系。
根据本申请实施例的另一方面,本申请提供了一种电子设备,包括存储器、处理器、通信接口及通信总线,存储器中存储有可在处理器上运行的计算机程序,存储器、处理器通过通信总线和通信接口进行通信,处理器执行计算机程序时实现上述方法的步骤。
根据本申请实施例的另一方面,本申请还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,程序代码使处理器执行上述的方法。
本申请实施例提供的上述技术方案与相关技术相比具有如下优点:
本申请技术方案为获取待比较的第一对象和第二对象,第一对象和第二对象中包括金融业务中产生的资源交换数据;将第一对象和第二对象输入对象比较器,以利用对象比较器在编译原始代码得到的字节码文件中提取目标字节码进行比较,原始代码为第一对象和第二对象的比较方法的代码,目标字节码包括第一对象和第二对象之间所需比较的内容的字节码;根据对象比较器的比较结果确定第一对象和第二对象之间资源交换数据的变化关系。本申请使用对编译器编译之后机器能够识别的字节码来进行不同对象之间内容的比较,从而可以不限制参与比较的对象必须是同种数据格式、同种类型的对象,解决了不能灵活配置比较对象、比较字段、比较方法的技术问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为根据本申请实施例提供的一种可选的对象比较方法硬件环境示意图;
图2为根据本申请实施例提供的一种可选的对象比较方法流程图;
图3为根据本申请实施例提供的一种可选的对象比较结果示意图;
图4为根据本申请实施例提供的一种对象比较方法原理示意图;
图5为根据本申请实施例提供的一种可选的对象比较装置框图;
图6为本申请实施例提供的一种可选的电子设备结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本申请的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。
首先,在对本申请实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:
字节码增强技术:字节码增强技术就是一类对现有字节码进行修改或者动态生成全新字节码文件的技术。
动态代理:在运行时期确定代理的类型或者是说在运行时期生成代理的类(class)。
Cglib:Code Generation Library,是一个强大的,高性能,高质量的Code生成类库,它可以在运行期扩展Java类与实现Java接口,是实现动态代理的一种方式。
表达式引擎:通过编写特定脚本根据上下文进行执行获取对应的结果功能。
QLExpress:是阿里巴巴开源的表达式规则引擎。
相关技术中,由于各家银行、银行的合作伙伴在业务特点以及发展需求上的不同,各家银行都会根据自身发展需求以及业务特点对银行核心系统单独设计开发相应的核心数据格式,以及进行升级改造或者是功能更新。这样一来,银行间数据文件的核对、校验等等程序十分复杂,不能灵活配置比较对象、比较字段、比较方法。
为了解决背景技术中提及的问题,根据本申请实施例的一方面,提供了一种对象比较方法的实施例。本申请提供的一种对象比较方法,可以应用在银行核心系统上对业务数据进行核对、校验等场景中。尤其是对不同比较对象之间的对比,如在实际银行数据交易过程中产生的委托单和成交单之间、申请单和成交单之间、委托单和指令单之间、成交单和指令单之间,以及申请单之间,委托单之间,指令单之间的对象比较,还可以应用于不同银行的数据比较。
可选地,在本申请实施例中,上述方法可以应用于如图1所示的由终端101和服务器103所构成的硬件环境中。如图1所示,服务器103通过网络与终端101进行连接,可用于为终端或终端上安装的客户端提供服务,可在服务器上或独立于服务器设置数据库105,用于为服务器103提供数据存储服务,上述网络包括但不限于:广域网、城域网或局域网,终端101包括但不限于PC、手机、平板电脑等。
本申请实施例中的一种方法可以由服务器103来执行,还可以是由服务器103和终端101共同执行,如图2所示,该方法可以包括以下步骤:
步骤S202,获取待比较的第一对象和第二对象,第一对象和第二对象中包括金融业务中产生的资源交换数据。
本申请实施例中,所述第一对象和第二对象可以是同一家银行中不同类型的数据对象,如委托单、成交单、指令单等。委托单中记录客户的委托数据,成交单中记录实际成交的数据,指令单中记录实际交易过程中产生的指令数据。上述金融业务包括但不限于银行业务,上述资源交换数据包括但不限于交易数据。
本申请实施例中,所述第一对象和第二对象可以是不同银行之间的交易数据,如A银行的委托单与B银行的委托单进行对比、A银行的成交单与B银行的指令单进行对比等。
本申请实施例中,所述第一对象和第二对象还可以是相同类型、相同数据格式的对象,如同一家银行的委托单之间的对比、同一家银行的成交单之间的对比等。
步骤S204,将第一对象和第二对象输入对象比较器,以利用对象比较器在编译原始代码得到的字节码文件中提取目标字节码进行比较,原始代码为第一对象和第二对象的比较方法的代码,目标字节码包括第一对象和第二对象之间所需比较的内容的字节码。
本申请实施例中,参与比较的对象来自于同一家银行各业务线中产生的交易数据,或来自不同银行的交易数据。不同的对象(数据表单)有不同的特点,同一家银行会根据不同对象的特点设计每个对象的数据格式,各家银行还会根据自己的业务特点、与合作伙伴的发展需求设计自己独特的对象类型、数据格式等。因此相关技术中往往只能指定相同类型、相同数据格式的对象间进行比较,如此设计的比较方法也都是硬编码,比较方法固定死板,更不用说对不同类型、不同数据格式的对象进行比较。
本申请技术方案的运行环境可以是Java环境,上述对象比较器相当于提供了对象比较框架,Java编译器在将记载有比较第一对象和第二对象的方法的原始代码进行编译后,生成固定格式的字节码文件(.class文件),从而对象比较器通过字节码增强技术从字节码文件中提取比较内容的目标字节码,打破了不同类型、不同数据格式之间难以进行对比的壁垒。Java之所以可以“一次编译,到处运行”,一是因为JVM(Java Virtual Machine,Java虚拟机)针对各种操作系统、平台都进行了定制,二就是因为无论在什么平台,都可以编译生成固定格式的字节码(.class文件)供JVM使用。
而基于字节码增强技术,还可以实现动态代理。开发人员只需在原始代码中编写比较方法的接口,即可经过动态代理拉取比较方法的具体实现,即通过面向切面编程的思想,将比较方法的实现与业务实现,甚至与对象比较框架进行剥离,需要什么比较方法,编写对应的实现接口即可,真正实现了灵活对比对象数据。
如图3所示为本申请提供的一种可选的不同对象之间的比较示例,其中,指令数据为指令单(相当于第一对象)的数据,委托数据为委托单(相当于第二对象)的数据,通过本申请技术方案,实现指令单和委托单之间到期收益率、行权收益率、应计利息等字段的对比。
本申请实施例中,在原始代码中编写比较方法的接口实际上就是对该对象比较器进行配置,可选的,还可以通过导入文件、导入数据库数据来进行配置。
步骤S206,根据对象比较器的比较结果确定第一对象和第二对象之间资源交换数据的变化关系。
本申请实施例中,通过对象比较器的比较结果,可以进一步确定第一对象和第二对象之间资源交换数据的变化关系,如委托单与成交单中比较内容的变化程度、委托单与指令单中比较内容的变化程度等。
通过上述步骤S202至S206,本申请使用对编译器编译之后机器能够识别的字节码来进行不同对象之间内容的比较,从而可以不限制参与比较的对象必须是同种数据格式、同种类型的对象,解决了不能灵活配置比较对象、比较字段、比较方法的技术问题。
可选地,将第一对象和第二对象输入对象比较器之前,该方法还包括按照如下方式配置对象比较器:
步骤11,从原始代码中提取目标代码段,目标代码段用于记录第一对象和第二对象之间所需比较的内容和比较方法的接口,比较的内容和比较方法的接口为预先配置的信息;
步骤12,将目标代码段传递至对象比较器,以使得对象比较器根据比较的内容提取目标字节码,并通过比较方法的接口调用比较方法的实现代码。
本申请实施例中,比较的内容和比较方法的接口可以通过编写在原始代码中对该对象比较器进行配置,比较方法的接口可以通过interface关键字来指示,比较内容可以通过注解的方式来指示字段映射,相当于指定第一对象中的A字段与第二对象中的B字段进行对比,如在非Spring环境中,可以使用@EquatorMapping来指定要比较的字段名,相同的字段名也可以不指定,默认会比较相同字段名的字段。当然,还需要指定比较的上述第一对象和第二对象各自为何,可以通过实例化方法,将待比较的两个对象作为形参传入主函数中,以在比较前读取两个对象的数据并传递至对象比较器。
上述目标代码段即为记录上述各项配置信息的代码。上述比较方法的实现代码是基于AOP(Aspect Oriented Programming,面向切面编程)思想实现的,可以由Cglib类库根据原始代码中比较方法的接口调用或生成实现代码。Cglib类库的底层是通过使用一个小而快的字节码处理框架ASM(Java字节码操控框架),来转换字节码并生成新的类。
可选地,配置对象比较器还包括:
步骤21,将至少一个比较规则保存在数据库,比较规则用于确定比较对象、比较字段及比较方法的接口中的至少一种;
步骤22,在接收到对象比较请求的情况下,从数据库中调取与对象比较请求匹配的比较规则配置对象比较器。
本申请实施例中,通过设置比较规则,即预先指定需要比较的对象、对象间需要比较的字段、比较的方法等,存储在数据库中,以使得对象比较器可以根据对象比较请求实时、灵活地调用相应的比较规则完成配置,进而可以进行相应的对象比较任务。在运行期间,若用户改变比较规则,对象比较器也可以从数据库中快速调取用户所需的比较规则来完成配置。
通过本申请技术方案,可以根据实际情况、实际需求自定义配置需要比较的对象、对象间需要比较的字段、比较的方法等,将对象比较逻辑从业务逻辑代码中完全解耦,实现灵活对比对象数据,还能方便后续的维护和修改。
可选地,在利用对象比较器对第一对象和第二对象进行比较时,提取目标字节码且调用得到比较方法的实现代码后,该方法还包括:
利用目标字节码和比较方法的实现代码生成目标代码,以在目标代码被运行时按照比较方法比较第一对象和第二对象之间的比较的内容,目标代码的格式为字节码。
本申请实施例中,字节码增强技术是一类对现有字节码进行修改或者动态生成全新字节码文件的技术,所以利用目标字节码和比较方法的实现代码生成的目标代码也是字节码。字节码为JVM可以直接执行的操作码,因此该方法速度快、性能优秀。
可选地,对象比较器根据比较的内容提取目标字节码包括:
步骤31,从目标代码段中确定第一字段和第二字段,第一字段为第一对象的比较字段,第二字段为第二对象的比较字段;
步骤32,步骤在字节码文件中找到第一字段对应的第一字节码,并提取与第一字节码匹配的第二字节码,在字节码文件中找到第二字段对应的第三字节码,并提取与第三字节码匹配的第四字节码,第二字节码为第一字段的字段值所对应的字节码,第四字节码为第二字段的字段值所对应的字节码;
步骤33,将第二字节码和第四字节码作为目标字节码。
本申请实施例中,可以通过@EquatorMapping关键字来在目标代码段中找到需要比较的第一字段和第二字段后,在字节码文件中找到第一字段对应的第一字节码和第二字段对应的第三字节码,再根据第一字段与其字段值的关联关系找到该字段值对应的第二字节码以及,根据第二字段与其字段值的关联关系找到该字段值对应的第四字节码,将第二字节码和第四字节码作为要进行比较操作的目标字节码。
可选地,若第一对象和第二对象间要比较的字段相同,如要比较委托单和指令单中的“到期收益率”字段,则上述第一字段与所述第二字段相同。不管比较的字段相同与否,第二字节码都是在第一对象的数据区寻找,第四字节码都是在第二对象的数据区寻找。
可选地,对象比较器根据比较的内容提取目标字节码还包括:
步骤41,从目标代码段中确定第一表达式和第二表达式,第一表达式用于确定第一字段中需要进行比较的字符,第二表达式用于确定第二字段中需要进行比较的字符;
步骤42,利用第一表达式提取第一字节码中对应的字节码作为目标字节码,利用第二表达式提取第三字节码中对应的字节码作为目标字节码。
本申请实施例中,可以通过QLExpress表达式引擎来指定需要对比的规则,如指定x字段的前3字符和y字段进行对比等。上述第一表达式和第二表达式可以是正则表达式。
可选地,通过表达式引擎也可以对该对象比较器输出的比较结果的格式进行自定义配置,如“【字段a】大于【字段b】,且【字段a的前3位】是多少”等。
可选地,根据对象比较器的比较结果确定第一对象和第二对象之间资源交换数据的变化关系包括:
步骤51,利用比较结果确定第一对象和第二对象之间资源交换数据的差异;
步骤52,确定资源交换数据的差异等级;
步骤53,确定差异等级对应的变化关系,并输出变化关系对应的预设文本数据。
本申请实施例中,最终结果可以区分等级输出不同的内容,比如字段a比字段b大100,则输出“超大”,字段a比字段b大10,则输出“略大”,字段a与字段b的差异在10以内,则输出“相近”等。超大、略大、相近等文本即为上述预设文本数据,超大对应的可以是差异范围最大的等级,略大对应的可以是差异范围适中的等级,相近则对应为差异范围较小的等级。
如图4所示为本申请技术方案的原理。如图所示,对象比较器可以进行自定义配置,如比较字段的自定义、比较方法的自定义,且比较方法只需编写接口即可通过动态代理调取或生成实现代码,提高开发效率。对象比较器的使用方式(配置方式)可以是注解(即在原始代码中通过特定关键字指定)、导入文件、数据库依赖等方式,最终实现两个不同类型、不同数据格式的对象间的比较。
根据本申请实施例的又一方面,如图5所示,提供了一种对象比较装置,包括:
对象获取模块501,用于获取待比较的第一对象和第二对象,第一对象和第二对象中包括金融业务中产生的资源交换数据;
对象比较模块503,用于将第一对象和第二对象输入对象比较器,以利用对象比较器在编译原始代码得到的字节码文件中提取目标字节码进行比较,原始代码为第一对象和第二对象的比较方法的代码,目标字节码包括第一对象和第二对象之间所需比较的内容的字节码;
变化关系确定模块505,用于根据对象比较器的比较结果确定第一对象和第二对象之间资源交换数据的变化关系。
需要说明的是,该实施例中的对象获取模块501可以用于执行本申请实施例中的步骤S202,该实施例中的对象比较模块503可以用于执行本申请实施例中的步骤S204,该实施例中的变化关系确定模块505可以用于执行本申请实施例中的步骤S206。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
可选地,该对象比较装置,还包括配置模块,用于:
从原始代码中提取目标代码段,目标代码段用于记录第一对象和第二对象之间所需比较的内容和比较方法的接口,比较的内容和比较方法的接口为预先配置的信息;
将目标代码段传递至对象比较器,以使得对象比较器根据比较的内容提取目标字节码,并通过比较方法的接口调用比较方法的实现代码。
可选地,该对象比较模块,还用于:
利用目标字节码和比较方法的实现代码生成目标代码,以在目标代码被运行时按照比较方法比较第一对象和第二对象之间的比较的内容,目标代码的格式为字节码。
可选地,该对象比较模块,还包括字节码提取单元,用于:
从目标代码段中确定第一字段和第二字段,第一字段为第一对象的比较字段,第二字段为第二对象的比较字段;
在字节码文件中找到第一字段对应的第一字节码,并提取与第一字节码匹配的第二字节码,在字节码文件中找到第二字段对应的第三字节码,并提取与第三字节码匹配的第四字节码,第二字节码为第一字段的字段值所对应的字节码,第四字节码为第二字段的字段值所对应的字节码;
将第二字节码和第四字节码作为目标字节码。
可选地,该字节码提取单元,还用于:
从目标代码段中确定第一表达式和第二表达式,第一表达式用于确定第一字段中需要进行比较的字符,第二表达式用于确定第二字段中需要进行比较的字符;
利用第一表达式提取第一字节码中对应的字节码作为目标字节码,利用第二表达式提取第三字节码中对应的字节码作为目标字节码。
可选地,该配置模块,还用于:
将至少一个比较规则保存在数据库,比较规则用于确定比较对象、比较字段及比较方法的接口中的至少一种;
在接收到对象比较请求的情况下,从数据库中调取与对象比较请求匹配的比较规则配置对象比较器。
可选地,该变化关系确定模块,具体用于:
利用比较结果确定第一对象和第二对象之间资源交换数据的差异;
确定资源交换数据的差异等级;
确定差异等级对应的变化关系,并输出变化关系对应的预设文本数据。
根据本申请实施例的另一方面,本申请提供了一种电子设备,如图6所示,包括存储器601、处理器603、通信接口605及通信总线607,存储器601中存储有可在处理器603上运行的计算机程序,存储器601、处理器603通过通信接口605和通信总线607进行通信,处理器603执行计算机程序时实现上述方法的步骤。
上述电子设备中的存储器、处理器通过通信总线和通信接口进行通信。所述通信总线可以是外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
根据本申请实施例的又一方面还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质。
可选地,在本申请实施例中,计算机可读介质被设置为存储用于所述处理器执行以下步骤的程序代码:
获取待比较的第一对象和第二对象,第一对象和第二对象中包括金融业务中产生的资源交换数据;
将第一对象和第二对象输入对象比较器,以利用对象比较器在编译原始代码得到的字节码文件中提取目标字节码进行比较,原始代码为第一对象和第二对象的比较方法的代码,目标字节码包括第一对象和第二对象之间所需比较的内容的字节码;
根据对象比较器的比较结果确定第一对象和第二对象之间资源交换数据的变化关系。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本申请实施例在具体实现时,可以参阅上述各个实施例,具有相应的技术效果。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种对象比较方法,其特征在于,包括:
获取待比较的第一对象和第二对象,其中,所述第一对象和所述第二对象中包括金融业务中产生的资源交换数据;
将所述第一对象和所述第二对象输入对象比较器,以利用所述对象比较器在编译原始代码得到的字节码文件中提取目标字节码进行比较,其中,所述原始代码为所述第一对象和所述第二对象的比较方法的代码,所述目标字节码包括所述第一对象和所述第二对象之间所需比较的内容的字节码;
根据所述对象比较器的比较结果确定所述第一对象和所述第二对象之间所述资源交换数据的变化关系。
2.根据权利要求1所述的方法,其特征在于,将所述第一对象和所述第二对象输入对象比较器之前,所述方法还包括按照如下方式配置所述对象比较器:
从所述原始代码中提取目标代码段,其中,所述目标代码段用于记录所述第一对象和所述第二对象之间所需比较的内容和比较方法的接口,所述比较的内容和所述比较方法的接口为预先配置的信息;
将所述目标代码段传递至所述对象比较器,以使得所述对象比较器根据所述比较的内容提取所述目标字节码,并通过所述比较方法的接口调用所述比较方法的实现代码。
3.根据权利要求2所述的方法,其特征在于,在利用所述对象比较器对所述第一对象和所述第二对象进行比较时,提取所述目标字节码且调用得到所述比较方法的实现代码后,所述方法还包括:
利用所述目标字节码和所述比较方法的实现代码生成目标代码,以在所述目标代码被运行时按照所述比较方法比较所述第一对象和所述第二对象之间的所述比较的内容,其中,所述目标代码的格式为字节码。
4.根据权利要求3所述的方法,其特征在于,所述对象比较器根据所述比较的内容提取所述目标字节码包括:
从所述目标代码段中确定第一字段和第二字段,其中,所述第一字段为所述第一对象的比较字段,所述第二字段为所述第二对象的比较字段;
在所述字节码文件中找到所述第一字段对应的第一字节码,并提取与所述第一字节码匹配的第二字节码,在所述字节码文件中找到所述第二字段对应的第三字节码,并提取与所述第三字节码匹配的第四字节码,其中,所述第二字节码为所述第一字段的字段值所对应的字节码,所述第四字节码为所述第二字段的字段值所对应的字节码;
将所述第二字节码和所述第四字节码作为所述目标字节码。
5.根据权利要求4所述的方法,其特征在于,所述对象比较器根据所述比较的内容提取所述目标字节码还包括:
从所述目标代码段中确定第一表达式和第二表达式,其中,所述第一表达式用于确定所述第一字段中需要进行比较的字符,所述第二表达式用于确定所述第二字段中需要进行比较的字符;
利用所述第一表达式提取所述第一字节码中对应的字节码作为所述目标字节码,利用所述第二表达式提取所述第三字节码中对应的字节码作为所述目标字节码。
6.根据权利要求2所述的方法,其特征在于,配置所述对象比较器还包括:
将至少一个比较规则保存在数据库,其中,所述比较规则用于确定比较对象、比较字段及比较方法的接口中的至少一种;
在接收到对象比较请求的情况下,从所述数据库中调取与所述对象比较请求匹配的所述比较规则配置所述对象比较器。
7.根据权利要求1至6任一所述的方法,其特征在于,根据所述对象比较器的比较结果确定所述第一对象和所述第二对象之间所述资源交换数据的变化关系包括:
利用所述比较结果确定所述第一对象和所述第二对象之间所述资源交换数据的差异;
确定所述资源交换数据的差异等级;
确定所述差异等级对应的变化关系,并输出所述变化关系对应的预设文本数据。
8.一种对象比较装置,其特征在于,包括:
对象获取模块,用于获取待比较的第一对象和第二对象,其中,所述第一对象和所述第二对象中包括金融业务中产生的资源交换数据;
对象比较模块,用于将所述第一对象和所述第二对象输入对象比较器,以利用所述对象比较器在编译原始代码得到的字节码文件中提取目标字节码进行比较,其中,所述原始代码为所述第一对象和所述第二对象的比较方法的代码,所述目标字节码包括所述第一对象和所述第二对象之间所需比较的内容的字节码;
变化关系确定模块,用于根据所述对象比较器的比较结果确定所述第一对象和所述第二对象之间所述资源交换数据的变化关系。
9.一种电子设备,包括存储器、处理器、通信接口及通信总线,所述存储器中存储有可在所述处理器上运行的计算机程序,所述存储器、所述处理器通过所述通信总线和所述通信接口进行通信,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至7任一项所述的方法的步骤。
10.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行所述权利要求1至7任一所述方法。
CN202110231723.2A 2021-03-02 2021-03-02 对象比较方法、装置、设备及计算机可读介质 Pending CN112925523A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110231723.2A CN112925523A (zh) 2021-03-02 2021-03-02 对象比较方法、装置、设备及计算机可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110231723.2A CN112925523A (zh) 2021-03-02 2021-03-02 对象比较方法、装置、设备及计算机可读介质

Publications (1)

Publication Number Publication Date
CN112925523A true CN112925523A (zh) 2021-06-08

Family

ID=76173065

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110231723.2A Pending CN112925523A (zh) 2021-03-02 2021-03-02 对象比较方法、装置、设备及计算机可读介质

Country Status (1)

Country Link
CN (1) CN112925523A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114637761A (zh) * 2022-03-10 2022-06-17 马上消费金融股份有限公司 业务对象生成方法及装置

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658421B1 (en) * 1999-02-22 2003-12-02 International Business Machines Corporation System and method for detecting release-to-release binary compatibility in compiled object code
CN1613058A (zh) * 2001-11-07 2005-05-04 富士通株式会社 配有jit编译器的虚拟计算机,操作所述计算机的方法以及包括所述虚拟计算机的终端设备
US20050188356A1 (en) * 2004-02-20 2005-08-25 Fuhwei Lwo Computer-implemented method, system and program product for comparing application program interfaces (APIs) between Java byte code releases
CN1749996A (zh) * 2004-09-16 2006-03-22 国际商业机器公司 用于数据库结构比较的方法、装置和计算机程序
US7836438B1 (en) * 2003-12-30 2010-11-16 Sap Ag Modified classfile registration with a dispatch unit that is responsible for dispatching invocations during runtime execution of modified bytecode
US20110283256A1 (en) * 2009-12-18 2011-11-17 Syddansk Universitet Method, computer program product, and system for non-blocking dynamic update of statically typed class-based object-oriented software
CN103593221A (zh) * 2012-08-16 2014-02-19 三星电子株式会社 用于动态数据配置的方法和设备
EP3432138A1 (en) * 2017-07-20 2019-01-23 Fujitsu Limited A computer-implemented method and system for comparing the results on a plurality of target machines of modification of a region of original code
US20190095229A1 (en) * 2017-09-22 2019-03-28 Intel Corporation Methods and apparatus to facilitate field-programmable gate array support during runtime execution of computer readable instructions
CN109740315A (zh) * 2018-12-28 2019-05-10 深圳前海微众银行股份有限公司 基于安卓平台的常量保护方法、装置、设备及存储介质
CN110134400A (zh) * 2019-04-02 2019-08-16 北京奇艺世纪科技有限公司 数据获取方法、装置、电子设备及计算机可读存储介质
CN112000986A (zh) * 2020-08-27 2020-11-27 中国平安财产保险股份有限公司 数据脱敏方法、装置、设备及存储介质
CN112163226A (zh) * 2020-11-30 2021-01-01 中国人民解放军国防科技大学 基于图自动编码器的二进制相似性检测方法
CN112306496A (zh) * 2020-10-30 2021-02-02 深圳前海微众银行股份有限公司 区块链运行信息分析方法、装置、设备及计算机存储介质

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658421B1 (en) * 1999-02-22 2003-12-02 International Business Machines Corporation System and method for detecting release-to-release binary compatibility in compiled object code
CN1613058A (zh) * 2001-11-07 2005-05-04 富士通株式会社 配有jit编译器的虚拟计算机,操作所述计算机的方法以及包括所述虚拟计算机的终端设备
US7836438B1 (en) * 2003-12-30 2010-11-16 Sap Ag Modified classfile registration with a dispatch unit that is responsible for dispatching invocations during runtime execution of modified bytecode
US20050188356A1 (en) * 2004-02-20 2005-08-25 Fuhwei Lwo Computer-implemented method, system and program product for comparing application program interfaces (APIs) between Java byte code releases
CN1749996A (zh) * 2004-09-16 2006-03-22 国际商业机器公司 用于数据库结构比较的方法、装置和计算机程序
US20110283256A1 (en) * 2009-12-18 2011-11-17 Syddansk Universitet Method, computer program product, and system for non-blocking dynamic update of statically typed class-based object-oriented software
CN103593221A (zh) * 2012-08-16 2014-02-19 三星电子株式会社 用于动态数据配置的方法和设备
EP3432138A1 (en) * 2017-07-20 2019-01-23 Fujitsu Limited A computer-implemented method and system for comparing the results on a plurality of target machines of modification of a region of original code
US20190095229A1 (en) * 2017-09-22 2019-03-28 Intel Corporation Methods and apparatus to facilitate field-programmable gate array support during runtime execution of computer readable instructions
CN109740315A (zh) * 2018-12-28 2019-05-10 深圳前海微众银行股份有限公司 基于安卓平台的常量保护方法、装置、设备及存储介质
CN110134400A (zh) * 2019-04-02 2019-08-16 北京奇艺世纪科技有限公司 数据获取方法、装置、电子设备及计算机可读存储介质
CN112000986A (zh) * 2020-08-27 2020-11-27 中国平安财产保险股份有限公司 数据脱敏方法、装置、设备及存储介质
CN112306496A (zh) * 2020-10-30 2021-02-02 深圳前海微众银行股份有限公司 区块链运行信息分析方法、装置、设备及计算机存储介质
CN112163226A (zh) * 2020-11-30 2021-01-01 中国人民解放军国防科技大学 基于图自动编码器的二进制相似性检测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李剑慧;王昀;黄波;乐永年;刘江宁;叶锦云;: "注解信息制导的动态二进制翻译及优化", 小型微型计算机系统, no. 03 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114637761A (zh) * 2022-03-10 2022-06-17 马上消费金融股份有限公司 业务对象生成方法及装置
CN114637761B (zh) * 2022-03-10 2024-03-19 马上消费金融股份有限公司 业务对象生成方法及装置

Similar Documents

Publication Publication Date Title
CN109976761B (zh) 软件开发工具包的生成方法、装置及终端设备
US10169034B2 (en) Verification of backward compatibility of software components
CN108292231B (zh) 从数据生成应用的方法和系统
US11074154B2 (en) Identifying a source file for use in debugging compiled code
KR20040097909A (ko) 명령에 대한 입력 파라미터의 반영 기반 프로세싱
CN111179086A (zh) 一种基于WebAssembly的智能合约虚拟机
US11893367B2 (en) Source code conversion from application program interface to policy document
CN110032568B (zh) 数据结构的读取及更新方法、装置、电子设备
KR20060047998A (ko) 문서에 문맥 정보를 삽입하는 방법 및 시스템
CN111241803A (zh) 生成文本文件的方法、装置、计算机设备及可读存储介质
CN111240772A (zh) 一种基于区块链的数据处理方法、装置及存储介质
US7966562B1 (en) System and method for providing domain-sensitive help
CN112925523A (zh) 对象比较方法、装置、设备及计算机可读介质
CN106502707B (zh) 代码生成方法及装置
CN116841906A (zh) 智能合约的检测方法、装置及电子设备
US11182272B2 (en) Application state monitoring
CN113778564B (zh) 一种高效执行evm智能合约的方法、设备及储存介质
CN115599401A (zh) 自定义模型的发布方法、装置、设备及介质
CN114911541A (zh) 配置信息的处理方法、装置、电子设备及存储介质
CN114625372A (zh) 组件自动编译方法、装置、计算机设备及存储介质
CN112445499A (zh) 衍生变量确定方法、装置、设备和存储介质
CN114186958A (zh) 将列表数据导出为电子表格的方法、计算设备及存储介质
CN114461223A (zh) 一种代码生成方法、装置及终端设备
US10936290B2 (en) Compile-time folding of assumed constant values
CN113296854A (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176

Applicant after: Jingdong Technology Holding Co.,Ltd.

Address before: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176

Applicant before: Jingdong Digital Technology Holding Co., Ltd