CN110825606A - 数据操作方法、装置和中台系统 - Google Patents
数据操作方法、装置和中台系统 Download PDFInfo
- Publication number
- CN110825606A CN110825606A CN201911092269.6A CN201911092269A CN110825606A CN 110825606 A CN110825606 A CN 110825606A CN 201911092269 A CN201911092269 A CN 201911092269A CN 110825606 A CN110825606 A CN 110825606A
- Authority
- CN
- China
- Prior art keywords
- state
- current system
- operation request
- subsystem
- specified
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明提供了一种数据操作方法、装置和中台系统,涉及计算机应用技术领域,该方法包括接收数据操作请求;获取与该数据操作请求相关联的子系统的当前系统状态;判断当前系统状态是否满足指定状态,得到判断结果;其中,该指定状态预先由子系统上报;根据该判断结果处理上述操作请求。本发明通过子系统预先上报指定状态,在处理前端操作请求时,中台系统只需将关联子系统的当前状态,与子系统预先上报的指定状态进行比较,即可判断操作请求是否可执行。这种方式降低了中台系统与子系统的耦合度,也降低了整体系统状态机的复杂度,进而有效降低了系统故障风险。
Description
技术领域
本发明涉及计算机应用技术领域,尤其是涉及一种数据操作方法、装置和中台系统。
背景技术
有限状态机(Finite-state machine,FSM),又称有限状态自动机,简称状态机,是表示有限个状态,以及在这些状态之间的转移和动作等行为的数学模型,其描述了系统运行的状态流转过程。
当前系统一般采用单一状态机设计,它通过向量图实现不同状态之间的状态切换和动作执行。并且,当前中台在对接多个子系统时,通常通过联合所有子系统的状态进行可操作性的综合判断,这种方式随着各个子系统的状态变化,需要不断修复整个系统的不可用状态,从而使得整个系统的状态机变得非常复杂,例如:成为网状状态机或环状状态机,这也大幅提高了系统故障风险。
发明内容
有鉴于此,本发明的目的在于提供一种数据操作方法、装置和中台系统,可以降低中台系统与子系统的耦合度,进而降低系统状态机的复杂度,并降低系统故障风险。
第一方面,本发明实施例提供了一种数据操作方法,包括:接收数据操作请求;获取与该数据操作请求相关联的子系统的当前系统状态;判断当前系统状态是否满足指定状态,得到判断结果;其中,该指定状态预先由子系统上报;根据该判断结果处理上述操作请求。
在本发明较佳的实施例中,上述指定状态包括多组状态组合;每组状态组合中包括至少一个子系统的状态;上述判断该当前系统状态是否满足指定状态的步骤,包括:判断当前系统状态是否满足指定状态中的至少一组状态组合;如果满足,确定该当前系统状态满足指定状态。
在本发明较佳的实施例中,上述多组状态组合的排列顺序,根据每组状态组合所包含的子系统状态的数量,由少到多地进行排列;上述判断当前系统状态是否满足指定状态的步骤,包括:按照多组状态组合的排列顺序,从该多组状态组合中获取目标状态组合;将当前系统状态与该目标状态组合进行匹配;如果匹配成功,确定该当前系统状态满足指定状态;如果匹配失败,将该目标状态组合的下一个状态组合作为新的目标状态组合,继续执行将当前系统状态与该目标状态组合进行匹配的步骤;如果该目标状态组合为该状态组合中的最后一个状态组合,且当前系统状态与该目标状态组合不匹配,确定当前系统状态不满足指定状态。
在本发明较佳的实施例中,上述指定状态包括不可执行数据操作请求的状态;上述根据该判断结果处理上述操作请求的步骤,包括:如果该判断结果指示当前系统状态满足指定状态,不执行该数据操作请求。
在本发明较佳的实施例中,上述指定状态包括可执行该数据操作请求的状态;上述根据该判断结果处理上述操作请求的步骤,包括:如果该判断结果指示当前系统状态满足指定状态,执行该数据操作请求。
在本发明较佳的实施例中,上述方法还包括:如果接收到来自子系统上报的指定状态更新请求,根据该指定状态更新请求,更新该指定状态。
第二方面,本发明实施例还提供了一种数据操作装置,该装置包括:操作请求接收模块,用于接收数据操作请求;当前系统状态获取模块,用于获取与该数据操作请求相关联的子系统的当前系统状态;判断模块,用于判断当前系统状态是否满足指定状态,得到判断结果;其中,该指定状态预先由子系统上报;操作请求处理模块,用于根据该判断结果处理上述操作请求。
在本发明较佳的实施例中,上述指定状态包括多组状态组合;每组状态组合中包括至少一个子系统的状态;该判断模块还用于:判断当前系统状态是否满足指定状态中的至少一组状态组合;如果满足,确定该当前系统状态满足指定状态。
在本发明较佳的实施例中,上述多组状态组合的排列顺序,根据每组状态组合所包含的子系统状态的数量,由少到多地进行排列;该判断模块还用于:按照多组状态组合的排列顺序,从该多组状态组合中获取目标状态组合;将当前系统状态与目标状态组合进行匹配;如果匹配成功,确定当前系统状态满足指定状态;如果匹配失败,将该目标状态组合的下一个状态组合作为新的目标状态组合,继续执行将当前系统状态与目标状态组合进行匹配的步骤;如果该目标状态组合为该状态组合中的最后一个状态组合,且当前系统状态与目标状态组合不匹配,确定该当前系统状态不满足指定状态。
在本发明较佳的实施例中,上述指定状态包括不可执行该数据操作请求的状态;该操作请求处理模块还用于:如果判断结果指示当前系统状态满足指定状态,不执行该数据操作请求。
第三方面,本发明实施例还提供了一种中台系统,该系统包括处理器和存储器,该存储器存储有能够被该处理器执行的计算机可执行指令,该处理器执行该计算机可执行指令以实现上述数据操作方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现上述数据操作方法。
上述数据操作方法、装置和中台系统,首先接收数据操作请求;然后获取与该数据操作请求相关联的子系统的当前系统状态;并且判断当前系统状态是否满足指定状态,得到判断结果;其中,该指定状态预先由子系统上报;进而根据该判断结果处理上述操作请求。该方式通过子系统预先上报指定状态,在处理前端操作请求时,中台系统只需将关联子系统的当前系统状态,与子系统预先上报的指定状态进行比较,即可判断操作请求是否可执行。这种方式降低了中台系统与子系统的耦合度,也降低了整体系统状态机的复杂度,进而有效降低了系统故障风险。
本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种中台系统的应用场景示意图;
图2为本发明实施例提供的一种数据操作方法的流程示意图;
图3为本发明实施例提供的另一种数据操作方法的流程示意图;
图4为本发明实施例提供的另一种数据操作方法的流程示意图;
图5为本发明实施例提供的另一种数据操作方法的流程示意图;
图6为本发明实施例提供的另一种数据操作方法的流程示意图;
图7为本发明实施例提供的一种数据操作装置的结构示意图;
图8为本发明实施例提供的一种中台系统的结构示意图。
图标:100-中台系统;200-前台;300-子系统;71-操作请求接收模块;72-当前系统状态获取模块;73-判断模块;74-操作请求处理模块;81-处理器;82-存储器;83-总线;84-通信接口。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一般来说,前台直接面向用户,通常由UI和直接应用组成,例如电商手机端、PC端的应用,甚至也包括订单系统、物流追踪服务等直接为前端应用提供支撑的服务。而后台直接面向数据,通常由数据库和之上的服务组成,用于最终数据的增加、读取、更新和删除,例如文档系统、记账系统和仓管系统等等。由于前台系统直接面向用户,为适应不断变化的现实情况,前台系统时常需要调整。而后台系统由于直接面向数据,保持稳定则是后台系统的重要目标。为了缓解前台和中台系统之间的这种矛盾,因而引入了中台系统。
参见图1,为一种中台系统的应用场景示意图,由图1可见,该中台系统100分别与前台200和多个子系统300相连,当前台200向中台发送操作请求时,通常中台系统100采取的手段是,联合所有子系统300的状态,以综合判断可操作性。在这种工作方式下,随着子系统300的不断增加,或者子系统300的状态机或状态机逻辑发生变化,那么中台系统100将不得不做大量的兼容和改进工作,使得整个系统的状态机变得非常复杂,也相应增加了系统故障的风险。
基于此,本发明实施例提供一种数据操作方法、装置和中台系统,该技术可以应用于各类软件、系统、平台等应用,根据系统状态进行数据操作的过程中。为便于对本实施例进行理解,首先对本发明实施例所公开的一种数据操作方法进行详细介绍。
图2所示为一种数据操作方法的流程示意图,由图2可见,该数据操作方法包括以下步骤:
步骤S202:接收数据操作请求。
这里,接收请求的可以是平台、系统、服务器等可进行数据处理的应用或终端,并且,数据操作请求的发出者可以是前端或客户端,例如PC端、手机终端、网页等。其中,数据操作可以是对数据的增加、读取、更新和删除等,例如,该请求可以是对域名配置的修改请求,或者对历史数据清理的请求。
步骤S204:获取与该数据操作请求相关联的子系统的当前系统状态。
在接收到数据操作请求之后,需要响应该操作请求。通常,操作请求中的操作内容需要相关联的子系统的配合,才可以完成所请求的数据操作。而对于子系统,在一些情况下是可以被操作,在另外一些情况下则不允许被操作,这与子系统所处的系统状态相关。
其中,系统状态是指系统所处的状态,以操作系统为例,操作系统包括三种状态:就绪状态、运行状态和阻塞状态,其中,就绪状态表示进程获得了除了CPU之外的所有的必要资源,只要获得CPU就可以立即执行,此时的进程处于就绪状态;运行状态表示进程已经获得CPU,正在运行,在多处理器系统中,会有多个进程同时处于运行状态;阻塞状态表示处于执行状态的进程由于发生某些事件而暂时无法继续执行,放弃处理机而处于暂停状态,此时进程就处于阻塞(执行受到阻塞)状态。
并且,各个系统状态之间有转换的可能,仍以操作系统的上述三种状态为例说明,其中,从运行状态可以转换到就绪状态或阻塞状态,从就绪状态也可以转换到运行状态,但是,不能从就绪状态转换到阻塞状态,也不能从阻塞状态转换到运行状态。
因此,如果数据操作请求是要求操作系统运行,而此时的操作系统处于阻塞状态,则操作系统无法从阻塞状态转换到运行状态,此时,该操作请求是不可执行的。
同理,对于其他的子系统,都具备各自的一种或多种系统状态,并且,系统状态之间存在可能转换的情况,也可能存在无法转换的情况。因此,在响应数据操作请求时,需要获取与该数据操作请求相关联的子系统的当前系统状态,以判断该数据请求是否可操作。其中,相关联的子系统可以是一个或多个,如果是多个关联子系统,则需要获取每个关联子系统的当前系统状态。例如,数据操作请求X和系统A及系统B相关联,则需要获取系统A的当前系统状态,也需要获取系统B的当前系统状态。
另外,在一些情况下,子系统之间相互关联,某些子系统不仅受自身系统状态之间的转换限制,也可能受关联子系统所处系统状态的限制。例如,相互关联的两个子系统A和子系统B。其中,子系统A有两个系统状态A1和A2,其中A1可以转换到A2,但是A2不能转换到A1;子系统B也有两个系统状态B1和B2,其中B1可以转换到B2,但是B2不能转换到B1。并且,当子系统A处于A2状态时,关联的子系统B不能由B1转换到B2。这样,当某数据操作请求是将子系统B由状态B1转换到B2时,若此时子系统A处于A2状态,该请求也是无法执行的。
步骤S206:判断当前系统状态是否满足指定状态,得到判断结果;其中,该指定状态预先由子系统上报。
这里,指定状态是由各个子系统预先上报,表示在该指定状态下,子系统是否可以操作。
假设接收到数据操作请求的是某中台系统M,并且该中台系统对接三个子系统,分别为系统a、系统b和系统c,这里,三个子系统各自都预先将指定状态上报中台系统M。在其中一种可能的实施方式中,中台系统M将各个子系统上报的指定状态存储。
在获得与该数据操作请求相关联的子系统的当前系统状态之后,将各个关联子系统的当前系统状态与指定状态进行匹配,以判断各个子系统的当前系统状态是否满足指定状态。这里,假设指定状态为可操作状态,也即,各个子系统上报自己的所有可操作状态,那么,如果上述当前系统状态满足该指定状态,则表示该请求可执行。也即,如果与操作请求关联的每个子系统的当前系统状态都满足各自上报的指定状态,则该请求可执行,否则,无法执行该请求。
在其他可能的实施方式中,该指定状态也可以是不可操作状态,用以表达子系统所有不可操作的状态。
步骤S208:根据该判断结果处理上述操作请求。
由于指定状态表达了各个子系统的可操作或不可操作状态,这样,当获得了与操作请求相关联的各个子系统的当前系统状态之后,结合指定状态,经过上述步骤S206的判断,即可明确知道各个子系统是否可操作。这样,只要有一个关联的子系统是不可操作的,则该操作请求无法执行,只有所有关联的子系统都是可操作时,该操作请求才可执行。因而,根据上述判断结果,可以做出针对上述操作请求的处理措施。
以该数据操作方法应用于中台系统为例,其中,假设该中台系统对接多个子系统,每个子系统预先将各自的指定状态上报中台系统,这里,假设指定状态为子系统的可操作状态。这样,当中台系统接收到前端数据操作请求时,中台系统获取与该操作请求相关联的各个子系统的当前系统状态,并且,只要将当前系统状态和指定状态进行匹配,即可判断各个子系统是否可操作,从而知道该操作请求是否可执行,并可迅速响应该操作请求。
相比与现有技术,本方案中的子系统预先将各自的指定状态上报到中台系统,在接收到前端操作请求时,中台系统不需要侵入子系统,以判断各个子系统在当前状态下是否可操作,而只需要通过简单地匹配比对,将关联子系统的当前系统状态与预先上报的指定状态进行匹配,即可判断该请求是否可执行,这种方式简化了中台系统的工作,并且降低了中台系统与子系统的耦合度,也相应降低了整个系统的状态机复杂度。
上述数据操作方法,首先接收数据操作请求;然后获取与该数据操作请求相关联的子系统的当前系统状态;并且判断当前系统状态是否满足指定状态,得到判断结果;其中,该指定状态预先由子系统上报;进而根据该判断结果处理上述操作请求。该方式通过子系统预先上报指定状态,在处理前端操作请求时,中台系统只需将关联子系统的当前状态,与子系统预先上报的指定状态进行比较,即可判断操作请求是否可执行。这种方式降低了中台系统与子系统的耦合度,也降低了整体系统状态机的复杂度,进而有效降低了系统故障风险。
在图2所示数据操作方法的基础上,本实施例还提供了另一种数据操作方法,该方法重点描述了判断该当前系统状态是否满足指定状态的具体实现过程,如图3所示,为该方法的流程示意图,由图3可见,该方法包括以下步骤:
步骤S302:接收数据操作请求。
步骤S304:获取与该数据操作请求相关联的子系统的当前系统状态。
步骤S306:判断当前系统状态是否满足指定状态中的至少一组状态组合;其中,该指定状态预先由子系统上报,该指定状态包括多组状态组合;每组状态组合中包括至少一个子系统的状态。
在上述实施例中已经说明,在一些情况下,子系统之间相互关联,某些子系统不仅受自身系统状态之间的转换限制,也可能受关联子系统所处系统状态的限制。因此,在子系统上报指定状态时,可能包含多个关联子系统的组合状态。
仍以中台系统M为例,该中台系统M对接三个子系统,分别为系统a、系统b和系统c,并且,系统a与系统b相关联,系统a包括两种系统状态a1和a2,系统b包括两种状态b1和b2;并且,a1可以转换为a2,a2不可以转换为a1,b1可以转换为b2,b2不可以转换为b1;当系统a处于a2时,系统b不可用由b1转换为b2。这样,假设指定状态为各子系统的不可操作状态,则系统b上报的指定状态包括:{b2}以及{a2,b1},也即,当系统b处于b2状态时,无法执行操作;当系统b处于b1且系统a处于a2时,也无法执行操作。
在其中一种可能的实施方式中,可以将获得的与该操作请求关联的各个子系统的当前系统状态,组成一个当前系统状态组合。这里,仍以指定状态为各子系统的不可操作状态为例说明。只要这个当前系统状态组合满足指定状态中的至少一组状态组合,即表明该组合属于不可操作的范围。这里,当前系统状态组合满足指定状态中的状态组合,表示该当前系统状态组合被包含在指定状态中的状态组合内。例如,对于上述中台系统M的例子,假设与操作请求相关联的子系统有系统a与系统b,并且当前系统状态组合是{a1,b2}时,由于系统b处于b2状态时是不可操作的,所以,不管系统a处于什么状态,该操作请求都是无法执行的。也即,当前系统状态组合{a1,b2}被包含在系统b上报的指定状态{b2}内,判断当前系统状态满足指定状态,因而该操作请求无法执行。
步骤S308:根据该判断结果处理上述操作请求。
经过上述步骤,已经获知了当前系统状态是否满足指定状态中的至少一组状态组合,从而可确定该操作请求是否可执行,进而响应该操作请求。
本实施例提供的数据操作方法,通过判断当前系统状态是否满足指定状态中的至少一组状态组合,从而确定该操作请求是否可执行;在中台系统的应用例子中,各个子系统独立上报指定状态,中台系统不需侵入各个子系统状态,而完全依赖子系统上报的指定状态,以判断与操作请求相关联的当前系统状态组合,是否可以导向次态。这种方式降低了中台系统与子系统的耦合度,有效降低了系统故障风险。
另外,本实施例还本实施例提供了另一种数据操作方法,该方法介绍了判断该当前系统状态是否满足指定状态的另一种实现过程,如图4所示,为该方法的流程示意图,由图4可见,该方法包括以下步骤:
步骤S402:接收数据操作请求。
步骤S404:获取与该数据操作请求相关联的子系统的当前系统状态。
步骤S406:读取指定状态;其中,该指定状态预先由子系统上报,该指定状态包括多组状态组合;每组状态组合中包括至少一个子系统的状态;多组状态组合的排列顺序,根据每组状态组合所包含的子系统状态的数量,由少到多地进行排列。
在本实施例中,将各个子系统上报的状态组合进行了排序,将状态组合中包含子系统状态的数量较少的排在前,包含的子系统状态的数量较多的组合排在后。
步骤S408:按照多组状态组合的排列顺序,从该多组状态组合中获取目标状态组合。
首先获取到的目标状态组合为排列靠前的组合,也即包含子系统状态的数量较少的状态组合。这种选取和匹配的方式,有助于更快速找到可能与当前系统状态相匹配的目标状态组合。
这里,仍以上述中台系统M的例子说明,指定状态为各子系统的不可操作状态,假设与操作请求相关联的子系统有系统a与系统b,系统b上报的指定状态包括:{b2}以及{a2,b1}。并且,当前系统状态组合是{a1,b2}时,由于系统b处于b2状态时是不可操作的,所以,不管系统a处于什么状态,该操作请求都是无法执行的。因此,在获取用于与当前系统状态进行匹配的目标状态组合时,优先获取包含子系统状态的数量较少的状态组合,这样,如果匹配上,也即如果当前系统状态组合被包含在该目标状态组合中,也即表明该请求不可执行。
步骤S410:将当前系统状态与该目标状态组合进行匹配;如果匹配成功,则执行步骤S412;如果匹配失败,则执行步骤S414。
如果匹配成功,则确定该当前系统状态满足指定状态;如果匹配失败,再判断该目标状态组合是否为该状态组合中的最后一个状态组合,如果是,说明在该状态组合中没有找到与目标状态组合相匹配的组合,此时,确定当前系统状态不满足指定状态;如果否,也即,判断该目标状态组合不是该状态组合中的最后一个状态组合,则将该目标状态组合的下一个状态组合作为新的目标状态组合,并续执行将当前系统状态与该目标状态组合进行匹配的步骤。
步骤S412:确定该当前系统状态满足指定状态。
步骤S414:判断该目标状态组合是否为该状态组合中的最后一个状态组合;如果是,则执行步骤S418;如果否,则执行步骤S416。
如果是,说明在该状态组合中没有找到与目标状态组合相匹配的组合,此时,确定当前系统状态不满足指定状态;
如果否,也即,判断该目标状态组合不是该状态组合中的最后一个状态组合,则将该目标状态组合的下一个状态组合作为新的目标状态组合,并续执行将当前系统状态与该目标状态组合进行匹配的步骤。
步骤S416:将该目标状态组合的下一个状态组合作为新的目标状态组合,并续执行将当前系统状态与该目标状态组合进行匹配的步骤。
步骤S418:确定当前系统状态不满足指定状态。
步骤S420:根据该判断结果处理上述操作请求。
为了更好理解本实施例中的数据操作方法,下面以一个实际例子进行说明。
假设某中台系统对接三个子系统,三个子系统分别为SystemA、SystemB、SystemC,且每个子系统均有10个独立的状态,中台系统对上层业务需要兼容三个子系统的状态机服务。其中,各个子系统预先将各自的不可操作状态上报到中台系统。在本实施例中,各个系统之间的关联关系如下:
SystemA:SystemA∩SystemB;
SystemB:SystemB∩SystemC;
SystemC:SystemA∩SystemB∩SystemC。
也即,SystemA配置了与SystemB联合,SystemB配置了与SystemC联合,SystemC配置了与SystemA和SystemB联合。例如,对于SystemA来说,它是否可操作,受到它本身与SystemB共同的状态的影响。
这里,子系统在上报中台系统不可操作状态组合时,各自选择与自己联合的子系统进行不可用状态组合。这样,对于SystemA,它的状态组合有10×10共100种状态组合,同理,SystemB和SystemC,分别有100种和1000种状态组合。假设各子系统已经上报了各自的不可操作状态组合,中台系统对其进行排序后如下表1所示:
表1不可操作状态组合列表
3 | ||
1 | 2 | |
2 | 3 | |
…… | …… | |
1 | 3 | 3 |
SystemA | SystemB | SystemC |
在上表中,包含了各个子系统上报的所有不可操作状态组合,其中,每一行代表一个不可操作状态组合,其中有的不可操作状态组合由一个子系统状态构成,有的由两个或三个子系统状态构成。并且,所有状态组合的排列顺序,根据每组状态组合所包含的子系统状态的数量,由少到多地进行排列。表中,第一列对应SystemA的系统状态,第二列对应SystemB的系统状态,第三列对应SystemC的系统状态,并且,表格中的数字代表各个子系统的状态。
当中台系统接收到数据操作请求时,首先获取与该操作请求相关联的子系统的当前系统状态,比如,关联的系统包括SystemA、SystemB和SystemC,并且,当前系统状态组合为{3,2,3},此时,按照多组状态组合的排列顺序,从该多组状态组合(也即上述表1)中获取目标状态组合,对于获取的第一个目标状态组合,SystemA为{3},此时,当前系统状态组合被包含在该目标状态组合中,因而判断该操作请求不可执行。
又比如,关联的系统仍然包括SystemA、SystemB和SystemC,并且,当前系统状态组合为{1,2,3},此时,按照多组状态组合的排列顺序,从该多组状态组合(也即上述表1)中,获取目标状态组合与当前系统状态组合进行匹配,第一个获取的目标状态组合为{3},匹配失败;第二个获取的目标状态组合为{1,2},匹配成功,则判断该操作请求不可执行。
假如关联的系统仍然包括SystemA、SystemB和SystemC,并且,当前系统状态组合为{1,1,1},并且,根据上述匹配方式,从表1中依次获取目标状态组合,都与当前系统状态组合匹配失败,则表明该当前系统状态组合没有包含在上述不可操作状态组合中,从而判断该操作请求可执行。
另外,对于本实施例提供的数据操作方法,当其中一个子系统,例如SystemA由于某种原因进行状态机优化,而新增了一个状态时,由于SystemC也受SystemA的影响,SystemC和SystemA的组合方式都有所增加,此时,SystemC和SystemA根据各自的不可操作状态组合,主动向中台系统上报,中台系统相应更新所存储的各个子系统的不可操作状态组合。
本实施例提供的数据操作方法,各个子系统自行与自己联合的子系统进行状态组合,无需关注所有子系统状态;并且,各个子系统将指定状态上报中台系统后,中台系统根据每组状态组合所包含的子系统状态的数量,由少到多地进行排列;当判断当前系统状态是否满足指定状态时,中台系统从排列的状态组合中依次选取目标状态组合,与当前系统状态进行匹配,这种方式可以提高匹配的效率,快速判断当前系统状态是否满足指定状态。该方法有效降低了中台系统与子系统的耦合度,中台系统无需参与复杂状态机的判断,进而降低了系统状态机的复杂度。
在图2所示数据操作方法的基础上,本实施例还提供了另一种数据操作方法,该方法重点描述了根据该判断结果处理上述操作请求的具体实现过程,如图5所示,为该方法的流程示意图,由图5可见,该方法包括以下步骤:
步骤S502:接收数据操作请求。
步骤S504:获取与该数据操作请求相关联的子系统的当前系统状态。
步骤S506:判断当前系统状态是否满足指定状态;如果是,则执行步骤S508;如果否,则执行步骤S510;其中,该指定状态预先由子系统上报,该指定状态包括不可执行数据操作请求的状态。
如果当前系统状态满足指定状态,也即,当前系统状态为不可执行数据操作请求的状态,则不执行该数据操作请求;如果当前系统状态不满足指定状态,也即,当前系统状态不属于不可执行数据操作请求的状态,则执行该数据操作请求。
步骤S508:不执行该数据操作请求。
在至少一种可能的实施方式中,当不执行该数据操作请求时,向发出数据操作请求的前端返回错误信息,通知前端当前的子系统状态不可操作。
步骤S510:执行该数据操作请求。
在另一种可能的实施方式中,子系统上报中台系统的指定状态包括可执行数据操作请求的状态,此时数据操作的流程如图6所示,由图6可见,其包括以下步骤:
步骤S602:接收数据操作请求。
步骤S604:获取与该数据操作请求相关联的子系统的当前系统状态。
步骤S606:判断当前系统状态是否满足指定状态;如果是,则执行步骤S608;如果否,则执行步骤S610;其中,该指定状态预先由子系统上报,该指定状态包括可执行数据操作请求的状态。
这里,如果当前系统状态满足指定状态,也即,当前系统状态为可执行数据操作请求的状态,则执行该数据操作请求;如果当前系统状态不满足指定状态,也即,当前系统状态不属于可执行数据操作请求的状态,则不执行该数据操作请求。
步骤S608:执行该数据操作请求。
步骤S610:不执行该数据操作请求。
在上述图5和图6示出的两种数据操作方法中,分别对应了指定状态包括不可执行数据操作请求的状态,以及指定状态包括可执行数据操作请求的状态的两种情况。在实际操作中,可以根据需要进行灵活地选择,例如,如果子系统的状态组合中,不可执行数据操作请求的状态为少数,则上报不可执行数据操作请求的状态,对应图5所示的数据操作方法;如果子系统的状态组合中,可执行数据操作请求的状态为少数,则上报可执行数据操作请求的状态,对应图6所示的数据操作方法。这样,可以相应缓解子系统上报的工作量以及中台系统进行匹配的工作量,提升整体系统的处理效率。
对应于上述实施例中的数据操作方法,本实施例提供了一种数据操作装置,如图7所述,为该数据操作装置的结构示意图,由图7可见,该装置包括依次相连的操作请求接收模块71、当前系统状态获取模块72、判断模块73和操作请求处理模块74,其中,各个模块的功能如下:
操作请求接收模块71,用于接收数据操作请求;
当前系统状态获取模块72,用于获取与该数据操作请求相关联的子系统的当前系统状态;
判断模块73,用于判断当前系统状态是否满足指定状态,得到判断结果;其中,该指定状态预先由子系统上报;
操作请求处理模块74,用于根据该判断结果处理上述操作请求。
上述数据操作装置,首先接收数据操作请求;然后获取与该数据操作请求相关联的子系统的当前系统状态;并且判断当前系统状态是否满足指定状态,得到判断结果;其中,该指定状态预先由子系统上报;进而根据该判断结果处理上述操作请求。该装置通过子系统预先上报可操作或不可操作状态组合,在处理前端操作请求时,中台系统只需将关联子系统的当前状态,与子系统预先上报的状态组合进行比较即可,而不需要中台判断关联子系统的状态是否可操作。该装置可以降低中台系统与子系统的耦合度,进而降低系统状态机的复杂度,并降低系统故障风险。
在其中一种可能的实施方式中,上述指定状态包括多组状态组合;每组状态组合中包括至少一个子系统的状态;上述判断模块73还用于:判断当前系统状态是否满足指定状态中的至少一组状态组合;如果满足,确定该当前系统状态满足指定状态。
在另一种可能的实施方式中,上述多组状态组合的排列顺序,根据每组状态组合所包含的子系统状态的数量,由少到多地进行排列;上述判断模块73还用于:按照多组状态组合的排列顺序,从该多组状态组合中获取目标状态组合;将当前系统状态与目标状态组合进行匹配;如果匹配成功,确定当前系统状态满足指定状态;如果匹配失败,将该目标状态组合的下一个状态组合作为新的目标状态组合,继续执行将当前系统状态与目标状态组合进行匹配的步骤;如果该目标状态组合为该状态组合中的最后一个状态组合,且当前系统状态与目标状态组合不匹配,确定该当前系统状态不满足指定状态。
在另一种可能的实施方式中,上述指定状态包括不可执行该数据操作请求的状态;上述操作请求处理模块74还用于:如果判断结果指示当前系统状态满足指定状态,不执行该数据操作请求。
在另一种可能的实施方式中,上述可执行该数据操作请求的状态;上述操作请求处理模块74还用于:如果该判断结果指示当前系统状态满足指定状态,执行该数据操作请求。
在另一种可能的实施方式中,上述装置还包括指定状态更新模块,用于如果接收到来自子系统上报的指定状态更新请求,根据该指定状态更新请求,更新该指定状态。
本发明实施例提供的数据操作装置,其实现原理及产生的技术效果和前述数据操作方法实施例相同,为简要描述,数据操作装置的实施例部分未提及之处,可参考前述数据操作方法实施例中相应内容。
本发明实施例还提供了一种中台系统,如图8所示,为该中台系统的结构示意图,其中,该中台系统包括处理器81和存储器82,该存储器82存储有能够被该处理器81执行的机器可执行指令,该处理器81执行该机器可执行指令以实现上述数据操作方法。
在图8示出的实施方式中,该中台系统还包括总线83和通信接口84,其中,处理器81、通信接口84和存储器82通过总线连接。
其中,存储器82可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口84(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器81可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器81中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器81可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器81读取存储器82中的信息,结合其硬件完成前述实施例的数据操作方法的步骤。
本发明实施例还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,该机器可执行指令促使处理器实现上述数据操作方法,具体实现可参见前述方法实施例,在此不再赘述。
本发明实施例所提供的数据操作方法、数据操作装置和中台系统的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的数据操作方法,具体实现可参见方法实施例,在此不再赘述。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种数据操作方法,其特征在于,所述方法包括:
接收数据操作请求;
获取与所述数据操作请求相关联的子系统的当前系统状态;
判断所述当前系统状态是否满足指定状态,得到判断结果;其中,所述指定状态预先由所述子系统上报;
根据所述判断结果处理所述操作请求。
2.根据权利要求1所述的方法,其特征在于,所述指定状态包括多组状态组合;每组所述状态组合中包括至少一个子系统的状态;
所述判断所述当前系统状态是否满足指定状态的步骤,包括:
判断所述当前系统状态是否满足所述指定状态中的至少一组状态组合;
如果满足,确定所述当前系统状态满足指定状态。
3.根据权利要求2所述的方法,其特征在于,所述指定状态中的多组状态组合的排列顺序,根据每组状态组合所包含的子系统状态的数量,由少到多地进行排列;
所述判断所述当前系统状态是否满足指定状态的步骤,包括:
按照所述多组状态组合的排列顺序,从所述多组状态组合中获取目标状态组合;
将所述当前系统状态与所述目标状态组合进行匹配;
如果匹配成功,确定所述当前系统状态满足指定状态;
如果匹配失败,将所述目标状态组合的下一个状态组合作为新的目标状态组合,继续执行将所述当前系统状态与所述目标状态组合进行匹配的步骤;
如果所述目标状态组合为所述状态组合中的最后一个状态组合,且所述当前系统状态与所述目标状态组合不匹配,确定所述当前系统状态不满足指定状态。
4.根据权利要求1所述的方法,其特征在于,所述指定状态包括不可执行所述数据操作请求的状态;
所述根据所述判断结果处理所述操作请求的步骤,包括:
如果所述判断结果指示所述当前系统状态满足所述指定状态,不执行所述数据操作请求。
5.根据权利要求1所述的方法,其特征在于,所述指定状态包括可执行所述数据操作请求的状态;
所述根据所述判断结果处理所述操作请求的步骤,包括:
如果所述判断结果指示所述当前系统状态满足所述指定状态,执行所述数据操作请求。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果接收到来自子系统上报的指定状态更新请求,根据所述指定状态更新请求,更新所述指定状态。
7.一种数据操作装置,其特征在于,所述装置包括:
操作请求接收模块,用于接收数据操作请求;
当前系统状态获取模块,用于获取与所述数据操作请求相关联的子系统的当前系统状态;
判断模块,用于判断所述当前系统状态是否满足指定状态,得到判断结果;其中,所述指定状态预先由所述子系统上报;
操作请求处理模块,用于根据所述判断结果处理所述操作请求。
8.根据权利要求7所述的装置,其特征在于,所述指定状态包括多组状态组合;每组所述状态组合中包括至少一个子系统的状态;所述判断模块还用于:
判断所述当前系统状态是否满足所述指定状态中的至少一组状态组合;
如果满足,确定所述当前系统状态满足指定状态。
9.根据权利要求8所述的装置,其特征在于,所述多组状态组合的排列顺序,根据每组状态组合所包含的子系统状态的数量,由少到多地进行排列;
所述判断模块还用于:
按照所述多组状态组合的排列顺序,从所述多组状态组合中获取目标状态组合;
将所述当前系统状态与所述目标状态组合进行匹配;
如果匹配成功,确定所述当前系统状态满足指定状态;
如果匹配失败,将所述目标状态组合的下一个状态组合作为新的目标状态组合,继续执行将所述当前系统状态与所述目标状态组合进行匹配的步骤;
如果所述目标状态组合为所述状态组合中的最后一个状态组合,且所述当前系统状态与所述目标状态组合不匹配,确定所述当前系统状态不满足指定状态。
10.根据权利要求7所述的装置,其特征在于,所述指定状态包括不可执行所述数据操作请求的状态;
所述操作请求处理模块还用于:
如果所述判断结果指示所述当前系统状态满足所述指定状态,不执行所述数据操作请求。
11.一种中台系统,其特征在于,所述系统包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现权利要求1至6任一项所述的数据操作方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现权利要求1至6任一项所述的数据操作方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911092269.6A CN110825606B (zh) | 2019-11-08 | 2019-11-08 | 数据操作方法、装置和中台系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911092269.6A CN110825606B (zh) | 2019-11-08 | 2019-11-08 | 数据操作方法、装置和中台系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110825606A true CN110825606A (zh) | 2020-02-21 |
CN110825606B CN110825606B (zh) | 2023-04-07 |
Family
ID=69553655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911092269.6A Active CN110825606B (zh) | 2019-11-08 | 2019-11-08 | 数据操作方法、装置和中台系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110825606B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150212897A1 (en) * | 2014-01-24 | 2015-07-30 | Commvault Systems, Inc. | Snapshot readiness checking and reporting |
CN108235759A (zh) * | 2017-12-20 | 2018-06-29 | 深圳前海达闼云端智能科技有限公司 | 基于多操作系统的输入处理方法、装置及电子设备 |
CN108491252A (zh) * | 2018-03-13 | 2018-09-04 | 万惠投资管理有限公司 | 分布式事务处理方法及分布式系统 |
CN109074275A (zh) * | 2018-03-15 | 2018-12-21 | 深圳前海达闼云端智能科技有限公司 | 硬件控制方法、装置、电子设备及计算机可读介质 |
-
2019
- 2019-11-08 CN CN201911092269.6A patent/CN110825606B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150212897A1 (en) * | 2014-01-24 | 2015-07-30 | Commvault Systems, Inc. | Snapshot readiness checking and reporting |
CN108235759A (zh) * | 2017-12-20 | 2018-06-29 | 深圳前海达闼云端智能科技有限公司 | 基于多操作系统的输入处理方法、装置及电子设备 |
CN108491252A (zh) * | 2018-03-13 | 2018-09-04 | 万惠投资管理有限公司 | 分布式事务处理方法及分布式系统 |
CN109074275A (zh) * | 2018-03-15 | 2018-12-21 | 深圳前海达闼云端智能科技有限公司 | 硬件控制方法、装置、电子设备及计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110825606B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101871383B1 (ko) | 계층적 데이터 구조의 노드 상에서 재귀적 이벤트 리스너를 사용하기 위한 방법 및 시스템 | |
CN105468302B (zh) | 一种处理数据的方法、装置及系统 | |
CN112532408B (zh) | 提取故障传播条件的方法、装置及存储介质 | |
CN111246406A (zh) | 一种短信发送方法、系统、存储介质及终端设备 | |
US11544119B2 (en) | Business rules processing framework for implementing new desired functionality in a telecommunication application | |
CN104615486A (zh) | 用于搜索推广平台的多任务调度和执行方法、装置和系统 | |
CN114338738A (zh) | 基于Actor模型的规则引擎及场景联动实现方法 | |
CN110825606B (zh) | 数据操作方法、装置和中台系统 | |
CN111049750B (zh) | 一种报文转发方法、系统及设备 | |
CN111046004B (zh) | 一种数据文件存储方法、装置、设备及存储介质 | |
CN111078560B (zh) | 基于流量剪枝的测试方法、装置、电子设备及存储介质 | |
CN110460673B (zh) | 一种服务地址获取方法、装置及设备 | |
CN109324914B (zh) | 服务调用方法、服务调用装置及中心服务器 | |
CN109729008B (zh) | 路由选择方法、装置及计算机设备 | |
CN111884932B (zh) | 一种链路确定方法、装置、设备和计算机可读存储介质 | |
CN113747423B (zh) | 云手机状态同步方法、装置、设备、存储介质及程序产品 | |
CN111030863B (zh) | 一种节点拓扑信息确定方法、装置、设备及存储介质 | |
CN108683533B (zh) | 配置更新方法、配置更新的响应方法及服务器、系统 | |
CN113691403A (zh) | 拓扑节点配置方法、相关装置及计算机程序产品 | |
CN108882268B (zh) | 一种更新设备配置的方法及设备 | |
CN106934555B (zh) | 工作流的组织方法及装置、计算机设备及存储介质 | |
CN112527276A (zh) | 一种可视化编程工具中的数据更新方法、装置及终端设备 | |
CN110768834A (zh) | 虚拟机配置升级结果的通知方法、系统、设备及介质 | |
CN115242687B (zh) | 一种节点探活方法、装置、设备及介质 | |
CN111132121B (zh) | 信息处理方法和网络仓库功能nrf网元 |
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 |