CN115146316A - 跨系统数据访问方法、装置、设备和介质 - Google Patents
跨系统数据访问方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN115146316A CN115146316A CN202210855792.5A CN202210855792A CN115146316A CN 115146316 A CN115146316 A CN 115146316A CN 202210855792 A CN202210855792 A CN 202210855792A CN 115146316 A CN115146316 A CN 115146316A
- Authority
- CN
- China
- Prior art keywords
- data
- service
- access
- message
- class
- 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
Links
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Bioethics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种用于分布式系统的跨系统数据访问方法,涉及金融领域。该方法包括:根据分布式应用的N个数据访问报文,确定所述分布式应用调用的至少一个目标数据服务;将调用第一数据服务的M个数据访问报文分类为数据查询类报文和/或数据更新类报文,获得第一分类结果;将所述第一分类结果记录在第一事务的事务上下文;根据所述事务上下文访问集中式系统中的应用数据库,其中,所述数据查询类报文和所述数据更新类报文具有不同的访问路径。本公开还提供了一种用于集中式系统的跨系统数据访问方法。
Description
技术领域
本公开涉及金融领域,更具体地,涉及一种跨系统数据访问方法、装置、设备、介质和程序产品。
背景技术
随着分布式技术的发展,分布式架构的稳定性逐步得到提高,一些企业的业务系统逐步从传统集中式架构向分布式架构演化。集中式架构向分布式架构转换的过程中,考虑业务系统的复杂性、稳定性和敏感性等因素,需要分阶段分逐步进行转型。在转型过程中,涉及分布式系统和集中式系统两个异构系统之间的数据访问,随着业务增长带来的高并发、流量大等情况,导致了数据并发访问或异步调用产生的死锁、冲突和失败回滚等问题。
发明内容
鉴于上述问题,本公开提供了一种跨系统数据访问方法、装置、设备、介质和程序产品。
本公开实施例的一个方面提供了一种跨系统数据访问方法,用于分布式系统,包括:根据分布式应用的N个数据访问报文,确定所述分布式应用调用的至少一个目标数据服务,其中,所述至少一个目标数据服务根据集中式系统提供的服务封装得到;将调用第一数据服务的M个数据访问报文分类为数据查询类报文和/或数据更新类报文,获得第一分类结果,其中,所述第一数据服务为所述至少一个目标数据服务中的任一个,N和M分别为大于或等于1的整数,M小于或等于N;将所述第一分类结果记录在第一事务的事务上下文;根据所述事务上下文访问集中式系统中的应用数据库,其中,所述数据查询类报文和所述数据更新类报文具有不同的访问路径。
根据本公开的实施例,所述根据所述事务上下文访问集中式系统中的应用数据库包括:在发送所述数据更新类报文时,调用所述集中式系统中的更新类数据服务,其中,所述更新类数据服务用于根据所述数据更新类报文访问所述应用数据库;或在发送所述数据查询类报文时,直接访问所述应用数据库。
根据本公开的实施例,在发送所述数据更新类报文之后,所述方法还包括:接收所述更新类数据服务的更新结果;根据所述更新结果确定每个所述数据更新类报文的数据更新状态。
根据本公开的实施例,所述方法还包括:根据每个所述数据更新类报文的数据更新状态,确定回滚操作的待执行情况;在执行所述回滚操作的情况下,将回滚操作信号发送至所述更新类服务,其中,所述更新类服务用于基于所述回滚操作信号使所述应用数据库执行所述回滚操作。
根据本公开的实施例,在所述调用所述集中式系统中的更新类数据服务之前,所述方法还包括:根据所述集中式系统的交易接口文档生成所述更新类服务;将所述更新类服务的文件发送到所述集中式系统,其中,所述集中式系统被配置为根据所述更新类服务的文件部署所述更新类服务。
根据本公开的实施例,在所述根据所述事务上下文访问集中式系统中的应用数据库之前,所述方法还包括:基于访问数据量、数据记录条数和业务种类中的至少一个,将所述M个数据访问报文中每个数据访问报文进行分类,获得第二分类结果;将所述第二分类结果记录在所述事务上下文。
根据本公开的实施例,在所述获得第二分类结果之后,所述方法还包括:根据所述第一数据服务的访问限制条件,对所述第二分类结果中至少一个类别下的数据访问报文进行拆分,获得拆分结果,其中,所述访问限制条件基于并发访问数、访问数据量、数据记录条数和业务种类中的至少一个获得;将所述拆分结果记录在所述事务上下文。
本公开实施例的另一方面提供了一种跨系统数据访问方法,用于集中式系统,包括:接收分布式系统发送的数据访问报文,其中,所述分布式系统被配置为根据如上所述用于分布式系统的跨系统数据访问方法发送所述数据访问报文;响应于所述数据访问报文访问应用数据库,向所述分布式系统返回数据访问结果。
根据本公开的实施例,所述接收分布式系统发送的数据访问请求包括:利用更新类数据服务接收数据更新类报文,其中,所述更新类数据服务用于根据所述数据更新类报文访问所述应用数据库;或利用所述应用数据库接收数据查询类报文。
本公开实施例的另一方面提供了一种跨系统数据访问装置,用于分布式系统,包括:目标确定模块,用于根据分布式应用的N个数据访问报文,确定所述分布式应用调用的至少一个目标数据服务,其中,所述至少一个目标数据服务根据集中式系统提供的服务封装得到;报文分类模块,用于将调用第一数据服务的M个数据访问报文分类为数据查询类报文和/或数据更新类报文,获得第一分类结果,其中,所述第一数据服务为所述至少一个目标数据服务中的任一个,N和M分别为大于或等于1的整数,M小于或等于N;结果记录模块,用于将所述第一分类结果记录在第一事务的事务上下文;第一访问模块,用于根据所述事务上下文访问集中式系统中的应用数据库,其中,所述数据查询类报文和所述数据更新类报文具有不同的访问路径。
本公开实施例的另一方面提供了一种跨系统数据访问装置,用于集中式系统,包括:报文接收模块,用于接收分布式系统发送的数据访问报文,其中,所述分布式系统被配置为根据权利要求1~7中任一项所述的方法发送所述数据访问报文;第二访问模块,用于响应于所述数据访问报文访问应用数据库,向所述分布式系统返回数据访问结果。
本公开实施例的另一方面提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行如上所述的方法。
本公开实施例的另一方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如上所述的方法。
本公开实施例的另一方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上所述的方法。
上述一个或多个实施例具有如下有益效果:首先,对于分布式应用的N个数据访问报文,以单个数据服务为粒度,确定出访问第一数据服务的M个数据访问报文;接着,将M个数据访问报文分类为数据查询类报文和/或数据更新类报文,利用第一事务的事务上下文记录第一分类结果;最后,将数据查询类报文与数据更新类报文分开处理,实现访问集中式系统的应用数据库的目的。从而能够提供有效事务控制措施,解决数据并发访问或异步调用过程中产生的死锁、冲突和失败回滚等问题,有效促进集中式应用向分布式应用的平稳过渡转型。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的跨系统数据访问方法的应用场景图;
图2示意性示出了根据本公开实施例的用于分布式系统的跨系统数据访问方法的流程图;
图3示意性示出了根据本公开实施例的部署更新类数据服务的流程图;
图4示意性示出了根据本公开实施例的记录第二分类结果的流程图;
图5示意性示出了根据本公开实施例的记录拆分结果的流程图;
图6示意性示出了根据本公开实施例的确定数据更新状态的流程图;
图7示意性示出了根据本公开实施例的执行回滚操作的流程图;
图8示意性示出了根据本公开实施例的用于集中式系统的跨系统数据访问方法的流程图;
图9示意性示出了根据本公开另一实施例的用于分布式系统的跨系统数据访问的流程图;
图10示意性示出了根据本公开实施例的用于分布式系统的跨系统数据访问装置的结构框图;
图11示意性示出了根据本公开实施例的用于集中式系统的跨系统数据访问装置的结构框图;以及
图12示意性示出了根据本公开实施例的适于实现跨系统数据访问方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
需要说明的是,本公开实施例提供的跨系统数据访问方法、装置、设备、介质和程序产品可用于金融领域,也可用于除金融领域之外的任意领域,本公开实施例提供的跨系统数据访问方法、装置、设备、介质和程序产品的应用领域不做限定。
图1示意性示出了根据本公开实施例的跨系统数据访问方法的应用场景图。
如图1所示,应用场景100包括开放平台系统111和主机系统133两类异构系统,其中开放平台系统111为分布式架构,即分布式系统,主机系统133为集中式架构,即集中式系统。开放平台系统111包含两个装置和四个应用,分别是数据服务生成装置114、数据服务提供装置120、数据服务生产应用112和113、数据服务消费应用131和132。数据服务生成装置114包括交易接口115、接口解析单元116、自动转换单元117、服务生成单元118和数据服务文件119。数据服务提供装置120包含数据服务注册单元121、数据服务公开单元122、数据服务通知单元123、报文检查单元124、协议匹配单元125、码制转换单元126、事务控制单元127、数据查询类报文单元128、数据更新类报文单元129和监控单元130。主机系统133包括主机应用134、应用数据库135和更新类数据服务136。
异构系统间的联机数据访问过程中,通过数据服务生产应用112和113通过交易接口115把企业现有主机应用交易的交易接口文档提供至数据服务生成装置114,数据服务生成装置114通过接口解析单元116、自动转换单元117和数据服务生产单元118生成相应的数据服务文件119。通过数据服务提供装置120的数据服务注册单元121注册到数据服务公开单元122进行服务暴露,数据服务提供装置120把注册服务通过数据服务通知单元123通知到数据服务消费应用131和132,由数据服务消费应用131和132调用,数据服务提供装置120通过报文检查单元124、协议匹配单元125、码制转换单元126和事务控制单元127将数据服务调用转换成可通过数据查询类报文单元128或数据更新类报文单元129来访问主机系统133的应用数据库135或更新类数据服务136。
数据服务生成装置114一般用于设计研发阶段,通过数据服务生产应用提供的交易接口自动将主机系统包含数据交互逻辑的应用交易快速封装和转换为数据服务化文件并注册发布,以此提交研发效率和降低数据服务的开发成本和主机应用交易向开放平台迁移所带来的成本。
数据服务提供装置120用于业务处理中,作为连接数据服务消费应用与主机应用数据库的桥梁,实现通过分布式数据服务调用来访问主机应用数据库,使得存量主机集中式数据库平衡过渡到企业统一分布式架构体系中,最大程度地复用企业现有资源。
报文检查单元124根据数据服务生成装置114发布的数据服务文件格式标准,对收到的服务请求报文进行相关校验,例如通过正则去检查、校验报文格式要求等。
协议匹配单元125根据收到的数据服务调用报文与数据服务生成装置114生成的数据服务文件进行匹配对比,实现数据服务报文到主机DB2联机数据访问报文的协议的匹配,以满足跨系统间远程数据服务调用的需要,包括报文拆分组合、通讯协议的适配转换、数据类型转换等。
码制转换单元126对于跨系统开放平台访问主机DB2数据库之间使用的不同报文码制进行匹配转换。
事务控制单元127对于经过检查、匹配和转换后的数据服务调用报文(即数据访问报文),会根据报文中的交易类型、事务性质以及数据访问的特性,结合数据服务文件119创建事务的上下文,并区分数据查询类报文128和数据更新类报文129。在一些实施例中,事务控制单元127对于同一服务调用,事务控制单元127分别记录数据查询类报文和数据更新类报文。
数据查询类报文单元128直接与主机系统133的应用数据库135交互进行数据访问和消息传递,可传递查询和数据更新类报文的从主机系统133的应用数据库135返回的操作状态至事务控制单元。
数据更新类报文单元129通过访问主机系统133的更新类数据服务136进而访问应用数据库135实现更新类的数据访问,以及用于传递事务控制单元127对事务的回滚操作信号至主机系统133的更新类数据服务136和应用数据库135。
更新类数据服务136可提供更新类数据的调用服务供开放平台系统111的数据服务提供装置120进行调用,也可以将数据更新类报文应用数据库135的结果或状态返回至数据服务提供装置120的事务控制单元127。
主机应用134作为集中式应用,实现了开放平台系统111访问主机系统133的应用数据库135和更新类数据服务136时的负载均衡、并发控制等功能。
监控单元130用于对报文检查单元124、协议匹配单元125、码制转换单元126、事务控制单元127的监控,及时发现问题并做报警处理。
以下将基于图1描述的场景,通过图2~图9对本公开实施例的跨系统数据访问方法进行详细描述。
图2示意性示出了根据本公开实施例的用于分布式系统的跨系统数据访问方法的流程图。
如图2所示,该实施例的跨系统数据访问方法包括操作S210~操作S240。
在操作S210,根据分布式应用的N个数据访问报文,确定分布式应用调用的至少一个目标数据服务,其中,至少一个目标数据服务根据集中式系统提供的服务封装得到。
参照图1,数据服务消费应用131和132为分布式应用,各自提供分布式服务。两者之间通过RPC(Remote Procedure Call,远程过程调用)连接。数据服务消费应用131和132与数据服务提供装置111之间通过RPC连接。需要说明的是,分布式应用的数量可以为一个或多个,不限定于数据服务消费应用131和132。
在分布式应用进行联机业务中的数据访问时,可以向数据服务公开单元暴露的目标数据服务发送数据访问报文,依次经过报文检查单元124、协议匹配单元125和码制转换单元127处理,可以由事务控制单元127确定N个数据访问报文中每个报文调用的目标数据服务。至少一个目标数据服务可以通过数据服务生成装置114根据集中式系统提供的交易接口文档(包括集中式系统提供的服务内容)封装得到。
在操作S220,将调用第一数据服务的M个数据访问报文分类为数据查询类报文和/或数据更新类报文,获得第一分类结果,其中,第一数据服务为至少一个目标数据服务中的任一个,N和M分别为大于或等于1的整数,M小于或等于N。
示例性地,事务控制单元127将调用同一数据服务的M个数据访问报文中每个报文进行分类。数据更新可以包括应用数据库中数据库的增加、修改和删除等操作。
在操作S230,将第一分类结果记录在第一事务的事务上下文。
示例性地,例如在处理记账业务时,事务控制单元127可以根据数据访问报文中数据访问的特性、记账交易类型、记账业务中账户分拣、记账和记账结果查询等步骤,结合所调用的账户分拣服务、记账服务等数据服务文件创建第一事务的事务上下文。在一些实施例中,如果还处理其他业务,涉及到账户分拣服务,也可以一并记录在第一事务的事务上下文。因此,在高并发的访问场景中,将调用同一数据服务的多个数据访问报文区分为数据查询类报文和数据更新类报文,并纳入到同一事务中统一管理。
在操作S240,根据事务上下文访问集中式系统中的应用数据库,其中,在访问的过程中,数据查询类报文和数据更新类报文具有不同的访问路径。
根据本公开的实施例,通过数据服务提供装置120的事务控制单元128有效区分数据查询类报文和数据更新类报文,进行分布式事务管理,解决数据事务并发交互特别是并发更新所带来的数据库锁和联机交易失败时的回滚问题,并减少分布式应用的开发设计复杂度。能够提供有效事务控制措施解决数据并发访问或异步调用过程中产生的死锁、冲突和失败回滚等问题,有效促进集中式应用向分布式应用的平稳过渡转型。
在一些实施例中,根据事务上下文访问集中式系统中的应用数据库包括:在发送数据更新类报文时,调用集中式系统中的更新类数据服务,其中,更新类数据服务用于根据数据更新类报文访问应用数据库。或在发送数据查询类报文时,直接访问应用数据库。
示例性地,根据数据访问的特性,查询类主要是读数据,更新类主要是写数据,读数据更适合大并发异步的访问,写数据容易出现死锁、数据不一致的情况,将访问路径划分为直接访问应用数据库的数据查询类报文和通过间接访问应用数据库的数据更新类报文。根据事务上下文中的第一分类结果,按照各个报文的类别执行访问,向集中式系统发送各个报文。
根据本公开的实施例,集中控制操作是指该更新类数据服务可以接收来自分布式系统的并发访问,来统一对应用数据库进行更新操作。
在一些实施例中,区别于图1,不在集中式系统中部署更新类数据服务。可以在分布式系统和集中式系统之间新增中间系统,用于部署更新类数据服务,来减少对于集中式系统的主机资源占用。
图3示意性示出了根据本公开实施例的部署更新类数据服务的流程图。
在调用集中式系统中的更新类数据服务之前,如图3所示,该实施例的部署更新类数据服务包括操作S310~操作S320。
在操作S310,根据集中式系统的交易接口文档生成更新类服务。
示例性地,集中式系统中主机应用的交易均有其交易接口文档,根据交易接口文档封装各个数据服务,包括更新类服务。
在操作S320,将更新类服务的文件发送到集中式系统,其中,集中式系统被配置为根据更新类服务的文件部署更新类服务。
示例性地,更新类服务的文件包括集中式系统运行更新类服务的代码文件、协议文件或服务描述文件等。
根据本公开的实施例,更新类数据服务136作为单独的数据服务放置于主机系统133的主机应用134,对于集中式的主机应用来说,有利用数据的集中控制操作,降低应用复杂度。
根据本公开的实施例,由于分布式数据服务对于异步数据访问时容易出现数据不一致、读写脏数据等问题,因此将数据更新类报文独立封装成主机集中式数据服务,并由事务控制单元127统一控制来避免异步并发更新引起的数据库不一致,并用于解决事务回滚及控制数据库锁时的访问问题。
图4示意性示出了根据本公开实施例的记录第二分类结果的流程图。
在根据事务上下文访问集中式系统中的应用数据库之前,如图4所示,该实施例的记录第二分类结果包括操作S410~操作S420。
在操作S410,基于访问数据量、数据记录条数和业务种类中的至少一个,将M个数据访问报文中每个数据访问报文进行分类,获得第二分类结果。
示例性地,根据数据访问报文的待访问数据量大小、数据记录条数和业务种类等进行分批归类,并将记录在创建的同一事务的上下文中,用于事务处理过程中的处理。
在操作S420,将第二分类结果记录在事务上下文。
根据本公开的实施例,在事务处理过程中,可以根据事务上下文中的第二分类结果对不同类别的报文进行分类处理。例如,首先将各个报文分类为数据查询类报文和数据更新类报文。然后,分别在数据查询类报文和数据更新类报文下,按照访问数据量大小进行排序分类,如大数据量、中数据量和小数据量(仅为示例)。最后,按照排序分类的结果(即第二分类结果)对各个类别的报文区分处理。从而提高数据访问效率。
在一些实施例中,对于各个类别的报文还可以结合各自归属的业务种类,或业务步骤来进行处理。例如不同记账业务的账户分拣步骤的报文,或一个记账业务中账户分拣步骤的报文与记账步骤的报文具有不同的处理方式。
图5示意性示出了根据本公开实施例的记录拆分结果的流程图。
在获得第二分类结果之后,如图5所示,该实施例的记录拆分结果包括操作S510~操作S520。
在操作S510,根据第一数据服务的访问限制条件,对第二分类结果中至少一个类别下的数据访问报文进行拆分,获得拆分结果,其中,访问限制条件基于并发访问数、访问数据量、数据记录条数和业务种类中的至少一个获得。
示例性地,访问限制条件可以包括最大并发访问数、最大访问数据量或最大数据记录条数等,可以包括特定业务种类的并发访问数、访问数据量、数据记录条数等。
例如,事务控制单元127对批量的数据访问进行细化拆分,拆分至预定的适合分类并发访问的粒度。
在操作S520,将拆分结果记录在事务上下文。
对于数据查询类报文,事务控制单元127通过解析服务调用报文并分类拆分访问数据,并根据预设的主机系统133的应用数据库135的并发访问限制,来调整和控制数据访问的速度、交易量、并发数等,以此实现并发数据访问控制。对于数据更新类报文,也可以分类拆分,调整和控制数据更新的速度、交易量、并发数等,以此实现并发数据访问控制。
图6示意性示出了根据本公开实施例的确定数据更新状态的流程图。
在发送数据更新类报文之后,如图6所示,该实施例的确定数据更新状态包括操作S610~操作S620。
在操作S610,接收更新类数据服务的更新结果。
在操作S620,根据更新结果确定每个数据更新类报文的数据更新状态。
对于数据更新类报文,事务控制单元127利用创建的事务上下文分别记录每笔更新类的数据操作记录和状态(如数据更新状态、是否更新成功等),并通过数据更新类报文单元129,以服务调用的方式访问主机系统133的更新类数据服务136,根据更新类数据服务访问的返回结果来确定数据更新状态,进行联机业务失败或成功的确定,便于事务的统一管理。
图7示意性示出了根据本公开实施例的执行回滚操作的流程图。
如图7所示,该实施例的执行回滚操作包括操作S710~操作S720。
在操作S710,根据每个数据更新类报文的数据更新状态,确定回滚操作的待执行情况。
在一些实施例中,事务控制单元127统一根据事务上下文中各事务分支的更新类数据操作状态来综合确定整体数据服务调用是否需要回滚,同时也根据事务上下文的数据操作状态来确实数据库是否处于锁状态,来控制数据访问,如某类更新类操作正在进行更新操作拥有其数据库的锁时,即限制其它类似数据访问的服务调用。
在操作S720,在执行回滚操作的情况下,将回滚操作信号发送至更新类服务,其中,更新类服务用于基于回滚操作信号使应用数据库执行回滚操作。
示例性地,更新类数据服务136能接受事务控制单元127发送的事务回滚、补提等操作信号,统一对各个事务进行管理,执行对应操作,从而解决分布式数据服务访问数据库所带来的数据不一致、脏数据等问题。
图8示意性示出了根据本公开实施例的用于集中式系统的跨系统数据访问方法的流程图。
如图8所示,该实施例的跨系统数据访问方法包括操作S810~操作S820。
在操作S810,接收分布式系统发送的数据访问报文,其中,分布式系统被配置为根据图2~图7的对应的用于分布式系统的跨系统数据访问方法一个或多个实施例发送数据访问报文。
根据本公开的实施例,接收分布式系统发送的数据访问请求包括:利用更新类数据服务接收数据更新类报文,其中,更新类数据服务用于根据数据更新类报文访问应用数据库;或利用应用数据库接收数据查询类报文。
在操作S820,响应于数据访问报文访问应用数据库,向分布式系统返回数据访问结果。
示例性地,对于数据更新类报文,数据访问结果可以包括数据更新状态。对于数据查询类报文,数据访问结果可以包括查询的目标数据。
在一些实施例中,在接收分布式系统发送的数据更新类报文之前,还可以接收分布式系统发送的更新类数据服务的文件进行部署,可以参照操作S310~操作S320,在此不做赘述。
在一些实施例中,利用更新类数据服务将更新结果发送至分布式系统的事务控制单元127。例如可以将更新结果发送至更新类数据访问单元129,再由更新类数据访问单元129发送至事务控制单元127。在一些实施例中,若应用数据库的更新事务执行时处于死锁状态,可以将更新结果发送至查询类数据访问单元128。
在一些实施例中,在接收分布式系统发送的数据更新类报文之后,还可以利用更新类数据服务接收回滚操作信息,以令应用数据库执行回滚操作,可以参照操作S710~操作S720,在此不做赘述。
图9示意性示出了根据本公开另一实施例的用于分布式系统的跨系统数据访问的流程图。
在操作S901,提供接口。通过数据服务生产应用112和113向数据服务生成装置114提供主机应用交易的交易接口文档。
在操作S902,服务生成。数据服务生成装置114根据数据服务生产应用112和113提供的交易接口自动解析转换生成相应的数据服务文件119。
在操作S903,服务发布。通过数据服务生成装置114把服务生成的数据服务文件119注册到数据服务提供装置111的数据服务注册单元121。
在操作S904,服务通知。数据服务提供装置111通过数据服务通知单元123把注册服务通知到数据服务消费应用131和132。
在操作S905,服务调用。数据服务消费应用131和132通过调用数据服务公开单元122的相关服务。
在操作S906,报文检查。数据服务公开单元122收到的服务会调用触发报文检查,报文检查单元124对收到的服务请求报文进行必要的校验,按照注册服务的格式要求对必输项的校验、报文中字段类型等的校验。
在操作S907,协议匹配。报文检查单元完成校验后,进一步触发协议匹配单元125进行协议匹配,完成包括数据报文拆分重组,通讯协议匹配,数据类型、格式的转换等。
在操作S908,码制转换。协议匹配单元125完成处理后,触发码制转换单元126,实现异构系统之间不同的码制的转换。
在操作S909,事务控制。码制转换完成后,触发事务控制单元327,根据交易并发确定事务访问数据库锁和联机业务失败时的回滚。
在操作S910,数据访问。通过查询类数据访问单元128访问主机系统133的应用数据库135,通过更新类数据访问单元129访问主机系统133的更新类数据服务136,更新类数据服务136访问应用数据库135进行数据库的查询和更新。
根据本公开的实施例,参照图1,借助自动化数据服务生成装置将主机DB2数据库访问交易快速自动服务化封装为开放平台数据服务,使用数据服务提供装置为分布式消费应用提供可采用RPC调用的数据服务,分别通过查询类和更新类数据远程访问SQLJ完成与主机DB2数据库的联机交互,不仅解决主机通用CPU成本昂贵问题,也解决并发访问的数据库死锁、冲突问题,还能做到快速开发、高效管理,以实现数据访问的集中式架构逐步向分布式架构的快速、安全转型,通过分布式架构解决银行业务持续增长的高并发等问题。
根据本公开的实施例的跨系统数据访问方法,还适用于一个或多个分布式系统与一个或多个集中式系统之间的数据访问。例如在进行更新类访问时,可以通过多个集中式系统中的更新类数据服务互相调用。
基于上述跨系统数据访问方法,本公开还提供了用于分布式系统的跨系统数据访问装置和用于集中式系统的跨系统数据访问装置。以下将结合图10和图11进行详细描述。
图10示意性示出了根据本公开实施例的用于分布式系统的跨系统数据访问装置的结构框图。
如图10所示,该实施例的跨系统数据访问装置1000包括目标确定模块1010、报文分类模块1020、结果记录模块1030和第一访问模块1040。
目标确定模块1010可以执行操作S210,用于根据分布式应用的N个数据访问报文,确定分布式应用调用的至少一个目标数据服务,其中,至少一个目标数据服务根据集中式系统提供的服务封装得到。
报文分类模块1020可以执行操作S220,用于将调用第一数据服务的M个数据访问报文分类为数据查询类报文和/或数据更新类报文,获得第一分类结果,其中,第一数据服务为至少一个目标数据服务中的任一个,N和M分别为大于或等于1的整数,M小于或等于N。
结果记录模块1030可以执行操作S230,用于将第一分类结果记录在第一事务的事务上下文。
根据本公开的实施例,结果记录模块1030可以执行操作S410~操作S420,操作S510~操作S520,在此不做赘述。
第一访问模块1040可以执行操作S240,用于根据事务上下文访问集中式系统中的应用数据库,其中,数据查询类报文和数据更新类报文具有不同的访问路径。
根据本公开的实施例,跨系统数据访问装置1000还可以包括服务生成模块,该模块可以执行操作S310~操作S320,在此不做赘述。
根据本公开的实施例,跨系统数据访问装置1000还可以包括状态接收模块,该模块可以执行操作S610~操作S620,在此不做赘述。
根据本公开的实施例,跨系统数据访问装置1000还可以包括事务回滚模块,该模块可以执行操作S710~操作S720,在此不做赘述。
图11示意性示出了根据本公开实施例的用于集中式系统的跨系统数据访问装置的结构框图。
如图11所示,该实施例的跨系统数据访问装置1100包括报文接收模块1110和第二访问模块1120。
报文接收模块1110可以执行操作S810,用于接收分布式系统发送的数据访问报文,其中,分布式系统被配置为根据如上用于分布式系统的跨系统数据访问方法发送数据访问报文。
第二访问模块1120可以执行操作S820,用于响应于数据访问报文访问应用数据库,向分布式系统返回数据访问结果。
需要说明的是,装置部分实施例中各模块/单元/子单元等的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。
根据本公开的实施例,跨系统数据访问装置1000或跨系统数据访问装置1100中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。
根据本公开的实施例,跨系统数据访问装置1000或跨系统数据访问装置1100中的至少一个模块可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,跨系统数据访问装置1000或跨系统数据访问装置1100中的至少一个模块可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图12示意性示出了根据本公开实施例的适于实现跨系统数据访问方法的电子设备的方框图。
如图12所示,根据本公开实施例的电子设备1200包括处理器1201,其可以根据存储在只读存储器(ROM)1202中的程序或者从存储部分1208加载到随机访问存储器(RAM)1203中的程序而执行各种适当的动作和处理。处理器1201例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器1201还可以包括用于缓存用途的板载存储器。处理器1201可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 1203中,存储有电子设备1200操作所需的各种程序和数据。处理器1201、ROM 1202以及RAM 1203通过总线1204彼此相连。处理器1201通过执行ROM 1202和/或RAM1203中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,程序也可以存储在除ROM 1202和RAM 1203以外的一个或多个存储器中。处理器1201也可以通过执行存储在一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备1200还可以包括输入/输出(I/O)接口1205,输入/输出(I/O)接口1205也连接至总线1204。电子设备1200还可以包括连接至I/O接口1205的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1206。包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1207。包括硬盘等的存储部分1208。以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1209。通信部分1209经由诸如因特网的网络执行通信处理。驱动器1210也根据需要连接至I/O接口1205。可拆卸介质1211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1210上,以便于从其上读出的计算机程序根据需要被安装入存储部分1208。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的。也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 1202和/或RAM 1203和/或ROM 1202和RAM1203以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的方法。
在该计算机程序被处理器1201执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分1209被下载和安装,和/或从可拆卸介质1211被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分1209从网络上被下载和安装,和/或从可拆卸介质1211被安装。在该计算机程序被处理器1201执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (14)
1.一种跨系统数据访问方法,用于分布式系统,包括:
根据分布式应用的N个数据访问报文,确定所述分布式应用调用的至少一个目标数据服务,其中,所述至少一个目标数据服务根据集中式系统提供的服务封装得到;
将调用第一数据服务的M个数据访问报文分类为数据查询类报文和/或数据更新类报文,获得第一分类结果,其中,所述第一数据服务为所述至少一个目标数据服务中的任一个,N和M分别为大于或等于1的整数,M小于或等于N;
将所述第一分类结果记录在第一事务的事务上下文;
根据所述事务上下文访问集中式系统中的应用数据库,其中,所述数据查询类报文和所述数据更新类报文具有不同的访问路径。
2.根据权利要求1所述的方法,其中,所述根据所述事务上下文访问集中式系统中的应用数据库包括:
在发送所述数据更新类报文时,调用所述集中式系统中的更新类数据服务,其中,所述更新类数据服务用于根据所述数据更新类报文访问所述应用数据库;或
在发送所述数据查询类报文时,直接访问所述应用数据库。
3.根据权利要求2所述的方法,其中,在发送所述数据更新类报文之后,所述方法还包括:
接收所述更新类数据服务的更新结果;
根据所述更新结果确定每个所述数据更新类报文的数据更新状态。
4.根据权利要求3所述的方法,其中,所述方法还包括:
根据每个所述数据更新类报文的数据更新状态,确定回滚操作的待执行情况;
在执行所述回滚操作的情况下,将回滚操作信号发送至所述更新类服务,其中,所述更新类服务用于基于所述回滚操作信号使所述应用数据库执行所述回滚操作。
5.根据权利要求2所述的方法,其中,在所述调用所述集中式系统中的更新类数据服务之前,所述方法还包括:
根据所述集中式系统的交易接口文档生成所述更新类服务;
将所述更新类服务的文件发送到所述集中式系统,其中,所述集中式系统被配置为根据所述更新类服务的文件部署所述更新类服务。
6.根据权利要求1所述的方法,其中,在所述根据所述事务上下文访问集中式系统中的应用数据库之前,所述方法还包括:
基于访问数据量、数据记录条数和业务种类中的至少一个,将所述M个数据访问报文中每个数据访问报文进行分类,获得第二分类结果;
将所述第二分类结果记录在所述事务上下文。
7.根据权利要求6所述的方法,其中,在所述获得第二分类结果之后,所述方法还包括:
根据所述第一数据服务的访问限制条件,对所述第二分类结果中至少一个类别下的数据访问报文进行拆分,获得拆分结果,其中,所述访问限制条件基于并发访问数、访问数据量、数据记录条数和业务种类中的至少一个获得;
将所述拆分结果记录在所述事务上下文。
8.一种跨系统数据访问方法,用于集中式系统,包括:
接收分布式系统发送的数据访问报文,其中,所述分布式系统被配置为根据权利要求1~7中任一项所述的方法发送所述数据访问报文;
响应于所述数据访问报文访问应用数据库,向所述分布式系统返回数据访问结果。
9.根据权利要求8所述的方法,其中,所述接收分布式系统发送的数据访问请求包括:
利用更新类数据服务接收数据更新类报文,其中,所述更新类数据服务用于根据所述数据更新类报文访问所述应用数据库;或
利用所述应用数据库接收数据查询类报文。
10.一种跨系统数据访问装置,用于分布式系统,包括:
目标确定模块,用于根据分布式应用的N个数据访问报文,确定所述分布式应用调用的至少一个目标数据服务,其中,所述至少一个目标数据服务根据集中式系统提供的服务封装得到;
报文分类模块,用于将调用第一数据服务的M个数据访问报文分类为数据查询类报文和/或数据更新类报文,获得第一分类结果,其中,所述第一数据服务为所述至少一个目标数据服务中的任一个,N和M分别为大于或等于1的整数,M小于或等于N;
结果记录模块,用于将所述第一分类结果记录在第一事务的事务上下文;
第一访问模块,用于根据所述事务上下文访问集中式系统中的应用数据库,其中,所述数据查询类报文和所述数据更新类报文具有不同的访问路径。
11.一种跨系统数据访问装置,用于集中式系统,包括:
报文接收模块,用于接收分布式系统发送的数据访问报文,其中,所述分布式系统被配置为根据权利要求1~7中任一项所述的方法发送所述数据访问报文;
第二访问模块,用于响应于所述数据访问报文访问应用数据库,向所述分布式系统返回数据访问结果。
12.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~9中任一项所述的方法。
13.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~9中任一项所述的方法。
14.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210855792.5A CN115146316A (zh) | 2022-07-19 | 2022-07-19 | 跨系统数据访问方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210855792.5A CN115146316A (zh) | 2022-07-19 | 2022-07-19 | 跨系统数据访问方法、装置、设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115146316A true CN115146316A (zh) | 2022-10-04 |
Family
ID=83411861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210855792.5A Pending CN115146316A (zh) | 2022-07-19 | 2022-07-19 | 跨系统数据访问方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115146316A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115954108A (zh) * | 2023-03-10 | 2023-04-11 | 成都数之联科技股份有限公司 | 一种数据分析异步处理方法及系统及装置及介质 |
-
2022
- 2022-07-19 CN CN202210855792.5A patent/CN115146316A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115954108A (zh) * | 2023-03-10 | 2023-04-11 | 成都数之联科技股份有限公司 | 一种数据分析异步处理方法及系统及装置及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110389829B (zh) | 多租户环境中扩展对象的分类与分发 | |
US8271609B2 (en) | Dynamic service invocation and service adaptation in BPEL SOA process | |
US20110213870A1 (en) | Providing services to multiple tenants of an application | |
US20060294141A1 (en) | Smart business object proxy | |
US10891569B1 (en) | Dynamic task discovery for workflow tasks | |
US10620854B1 (en) | Validating data for deployment | |
CN112288577A (zh) | 分布式服务的交易处理方法、装置、电子设备和介质 | |
CN115146316A (zh) | 跨系统数据访问方法、装置、设备和介质 | |
US20080066060A1 (en) | Redirection interface system and method for CIM object manager provider | |
JP7427169B2 (ja) | MaaSプラットフォーム上で大規模トランザクション及びノードアーカイバルをサポートするための共通データベースアーキテクチャ | |
US20060136933A1 (en) | Server-side eventing for managed server applications | |
CN116644122A (zh) | 数据事务处理方法、装置、计算机设备及存储介质 | |
US8930960B2 (en) | Methods and systems for object interpretation within a shared object space | |
CN115760013A (zh) | 运维模型的构建方法、装置、电子设备及存储介质 | |
US11023839B2 (en) | Workflow integration | |
CN114677114A (zh) | 基于图形拖拽的审批流程生成方法及装置 | |
CN114780361A (zh) | 日志生成方法、装置、计算机系统及可读存储介质 | |
CN114237821A (zh) | Kubernetes容器集群的自发现方法、装置、电子设备及存储介质 | |
CN114461909A (zh) | 信息处理方法、信息处理装置、电子设备和存储介质 | |
US9286112B2 (en) | Determining and dispatching processing agent for transaction processing | |
CN114363172B (zh) | 用于容器组的解耦管理方法、装置、设备、介质 | |
US20230376501A1 (en) | Asik: modular interface to blockchain | |
CN116739805A (zh) | 数据处理方法及装置、电子设备和计算机可读存储介质 | |
CN115309404A (zh) | 文件生成方法、装置、电子设备及存储介质 | |
CN114707961A (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 |