Process variable grading processing method and device, equipment and storage medium

In the DevOps network operation process platform, the process variables are stored in different types of databases in a hierarchical manner according to the amount of data of the process variables, which solves the problems of database performance and high operation and maintenance costs caused by the large amount of process variables, and achieves more efficient data management and stability.

CN120371808APending Publication Date: 2025-07-25SHENZHEN TENCENT COMP SYST CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202410115942.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-01-25
Publication Date
2025-07-25

AI Technical Summary

Technical Problem

In the DevOps network operation process platform, the large amount of data of process variables leads to uncontrollable volume of relational databases, affecting execution performance, increasing operation and maintenance costs, and making it difficult to clean and recover data.

Method used

The hierarchical processing method of process variables is used to store process variables in databases of different storage levels according to the size of the data, including non-relational databases and object storage databases, record storage methods to indicate the database type, and obtain variable values from the corresponding databases when read.

Benefits of technology

It reduces the storage pressure of relational databases, improves the writing performance of databases, reduces the frequency of data cleaning, improves the stability and security of databases, and reduces operation and maintenance costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120371808A_ABST
    Figure CN120371808A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of computers, provides a process variable grading processing method and device, equipment and a storage medium, is used for improving the performance, stability and safety of a database, and can be applied to the field of maps. According to the method, variable values with different data volumes are stored in databases corresponding to different storage levels according to the data volumes of the process variables, and the storage mode is recorded, so that the data volume of the relational database is reduced, the storage pressure of the relational database is reduced, and the storage efficiency of the relational database is improved. The storage mode is used for indicating the type of the database where the flow variable of the corresponding storage level is located, so that the variable value can be efficiently and quickly obtained from the target database of the corresponding type through the storage mode of the flow variable of the write-in operation record, the reading pressure of the relational database is reduced, and the reading efficiency is improved. And the read-write performance of the database is improved. And meanwhile, by introducing a plurality of databases, frequent cleaning of data is reduced, and the stability and safety of the databases are improved.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0002] Currently, the engines for executing business processes include standard process engines of traditional Business Process Modeling Notation (BPMN) (such as Activiti / Flowable, etc.), and process engines that are not of the BPMN standard type.

[0003] The process engines that are not of the BPMN standard type control the process flow only by explicitly passing parameters, without designing process variables. This processing method lacks sufficient flexibility and is not suitable for complex application scenarios in the network operation process platform.

[0004] However, the standard process engine's processing method for process variables in a process instance is very simple, directly storing the process variables in a relational database. But in the application scenario of the network operation process platform, the data volume of process variables is large. This processing method makes the volume of the database uncontrollable, and moreover, in the case of only retaining limited historical data, the data volume still reaches the level of 2TB+ or more, resulting in a decline in the execution performance of the database and an increase in operation and maintenance costs. Summary of the Invention

[0005] Embodiments of the present application provide a hierarchical processing method, device, equipment, and storage medium for process variables to improve the performance of the database.

[0006] A hierarchical processing method for process variables provided by embodiments of the present application includes:

[0007] During the processing of a business process, every time a read / write operation triggered by a process variable in the business process is responded to, the following processing is performed:

[0008] When the read / write operation is a write operation, based on the data volume size of the variable value of the currently to-be-processed process variable, obtain the target storage level of the process variable, store the variable value in the target database corresponding to the target storage level, and record the storage method corresponding to the process variable, where the storage method is used to indicate: the type of the target database where the process variable at the target storage level is located;

[0009] When the read / write operation is a read operation, based on the record corresponding to the currently to-be-processed process variable during the write operation, obtain the storage method of the process variable, and based on the storage method, obtain the variable value of the process variable from the target database of the corresponding type.

[0010] On the other hand, embodiments of the present application provide a hierarchical processing device for process variables, including:

[0011] A response module, configured to respond to read and write operations triggered for process variables in a business process during the processing of the business process;

[0012] A write module, configured to, when the read and write operation is a write operation, obtain a target storage level for the process variable based on the data volume size of the variable value of the currently to-be-processed process variable, store the variable value in a target database corresponding to the target storage level, and record the storage method corresponding to the process variable, where the storage method is used to indicate: the type of the target database where the process variable of the target storage level is located;

[0013] A read module, configured to, when the read and write operation is a read operation, obtain the storage method of the process variable based on the record corresponding to the currently to-be-processed process variable during the write operation, and obtain the variable value of the process variable from a target database of the corresponding type based on the storage method.

[0014] Optionally, the write module is specifically configured to:

[0015] Traverse each preset storage level, and for each traversed storage level, perform the following operations:

[0016] Obtain a preset variable range corresponding to the storage level;

[0017] If the data volume size of the variable value of the process variable is within the preset variable range, use the current storage level as the target storage level for the process variable and stop traversing; otherwise, continue to traverse the next storage level.

[0018] Optionally, databases corresponding to different storage levels have different volumes, and the volume of the database is positively correlated with the preset variable range corresponding to the storage level.

[0019] Optionally, the database includes at least one of a non-relational database and an object storage database and a relational database, where the volume of the relational database is smaller than that of the non-relational database, and the volume of the non-relational database is smaller than that of the object storage database.

[0020] Optionally, a variable registration table is stored corresponding to the business process. When the business process is run independently, the write operation is specifically used to:

[0021] Use the variable name of the process variable as the key of the process variable, and write the key of the process variable and the storage method into the variable registration table; where the variable names of different process variables are different in the business process.

[0022] Optionally, the read operation is specifically used to:

[0023] Query the variable registry based on the key of the process variable to obtain the storage method corresponding to the process variable.

[0024] Optionally, a variable registry is stored corresponding to the business process. When the business process runs together with other business processes and each business process corresponds to an instance identifier, the write operation is specifically used for:

[0025] Use the variable name of the process variable as the key of the process variable, and write the key of the process variable, the instance identifier of the business process to which it belongs, and the storage method into the variable registry, where the combination of the variable name of the process variable and the instance identifier of the business process to which it belongs is globally unique.

[0026] Optionally, the read operation is specifically used for:

[0027] Query the variable registry based on the key of the process variable and the instance identifier to which the process variable belongs to obtain the storage method corresponding to the process variable.

[0028] Optionally, the variable registry also records at least one of the variable type and the data volume size of the variable value.

[0029] An electronic device provided by an embodiment of the present application includes a processor and a memory. Among them, the memory stores a computer program. When the computer program is executed by the processor, the processor executes the steps of any one of the above-mentioned hierarchical processing methods for process variables.

[0030] An embodiment of the present application provides a computer-readable storage medium, which includes a computer program. When the computer program runs on an electronic device, the computer program is used to cause the electronic device to execute the steps of any one of the above-mentioned hierarchical processing methods for process variables.

[0031] An embodiment of the present application provides a computer program product. The computer program product includes a computer program, and the computer program is stored in a computer-readable storage medium; when the processor of an electronic device reads the computer program from the computer-readable storage medium, the processor executes the computer program, so that the electronic device executes the steps of any one of the above-mentioned hierarchical processing methods for process variables.

[0032] The beneficial effects of a hierarchical processing method, device, equipment and storage medium for process variables provided by an embodiment of the present application are as follows:

[0033] For the process variables in the business process, when performing a write operation, according to the data volume of the variable value of the process variable, variable values of different data volumes are stored in databases corresponding to different storage levels, thereby reducing the data volume in the relational database, reducing the storage pressure of the relational database, and then improving the write performance of the database. Moreover, during the write operation, the storage method corresponding to each process variable will also be recorded, and each storage method is used to indicate: the type of the database where the process variable of the corresponding storage level is located. In this way, when performing a read operation, the storage method of the process variable recorded by the write operation can be used to efficiently and quickly obtain the corresponding variable value from the target database of the corresponding type, thereby reducing the read pressure on the relational database. On the other hand, by introducing multiple types of databases through dividing storage levels, the frequent data cleaning caused by the storage space limitation of the relational database is reduced, the stability and security of the database are improved, and at the same time, the maintenance cost of the database is reduced.

[0034] Other features and advantages of the present application will be described in the following specification, and part of them will become obvious from the specification, or be understood by implementing the present application. The objectives and other advantages of the present application can be achieved and obtained through the structures specifically pointed out in the written specification, claims, and drawings. Brief Description of the Drawings

[0035] The drawings described herein are used to provide a further understanding of the present application and form a part of the present application. The schematic embodiments of the present application and their descriptions are used to explain the present application and do not constitute an improper limitation to the present application. In the drawings:

[0036] Figure 1A It is a schematic diagram of the processing method of traditional process variables provided by an embodiment of the present application;

[0037] Figure 1B It is a schematic diagram of the defects existing in the processing method of traditional process variables provided by an embodiment of the present application;

[0038] Figure 2 It is a schematic diagram of an application scenario in an embodiment of the present application;

[0039] Figure 3 It is a flowchart of a method for hierarchical processing of process variables provided by an embodiment of the present application;

[0040] Figure 4 It is an example diagram of a business process provided by an embodiment of the present application;

[0041] Figure 5 It is a flowchart of hierarchical writing of process variables provided by an embodiment of the present application;

[0042] Figure 6Schematic diagram of the hierarchical storage method of process variables provided by the embodiments of the present application;

[0043] Figure 7A Schematic diagram of a hierarchical writing method of process variables provided by the embodiments of the present application;

[0044] Figure 7B Schematic diagram of another hierarchical writing method of process variables provided by the embodiments of the present application;

[0045] Figure 8 Timing diagram of the hierarchical writing of process variables provided by the embodiments of the present application;

[0046] Figure 9A Schematic diagram of a hierarchical reading method of process variables provided by the embodiments of the present application;

[0047] Figure 9B Schematic diagram of another hierarchical reading method of process variables provided by the embodiments of the present application;

[0048] Figure 10 Timing diagram of the hierarchical reading of process variables provided by the embodiments of the present application;

[0049] Figure 11 Functional structure diagram of a hierarchical processing device for process variables provided by the embodiments of the present application;

[0050] Figure 12 Schematic diagram of the hardware composition structure of an electronic device provided by the embodiments of the present application. Detailed implementation manners

[0051] To make the objectives, technical solutions, and advantages of the embodiments of the present application clearer, the technical solutions of the present application will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present application. Obviously, the described embodiments are some but not all of the embodiments of the present application. All other embodiments obtained by those of ordinary skill in the art based on the embodiments described in this application document without creative efforts belong to the scope protected by the technical solutions of the present application.

[0052] Some concepts involved in the embodiments of the present application are introduced below.

[0053] DevOps Network Operations Process Platform (abbreviated as NetDevOps): An automated operations process development system and operation platform tailored for network operations personnel. Through a low-code, low-threshold, and high-efficiency process development method, network operations affairs are processed in a process-based and standardized manner. At the same time, capabilities such as data management, automated operation, and transaction control are provided through a unified mode.

[0054] Self-developed Workflow Engine (WorkflowEngine): A workflow engine tailored for the DevOps network operation process platform, mainly responsible for driving the transfer of task nodes during the operation of business processes and distributing task logic flowing through task nodes, including capabilities such as storage and management of process instances / tasks / sequence flows / variables, process path decision-making, task logic distribution, execution of various monitors, and process exception control.

[0055] Process Instance: That is, an actual business process. Among them, one type of process (i.e., process definition) can start multiple process instances.

[0056] Process Task: That is, a task node of the process, which is bound with a monitor, and the monitor implements specific program processing logic.

[0057] Task-Driven: The process in which the self-developed workflow engine performs a task drive to achieve the transfer of task nodes. From the start to the end of a process instance, multiple drives are often required. Each drive represents the completion of the business logic generated by the previous drive and enters the next business logic to be executed.

[0058] Process Instance Variable: A data sharing mechanism within a process instance in the self-developed workflow engine. By setting different variable values for process variables, the transfer path of the process instance can be controlled.

[0059] The embodiments of this application relate to cloud technology. A brief introduction to cloud technology is given below.

[0060] Cloud technology is a hosting technology that unifies a series of resources such as hardware, software, and networks within a wide area network or local area network to achieve data computing, storage, processing, and sharing.

[0061] Cloud technology is the general term for network technology, information technology, integration technology, management platform technology, application technology, etc. based on the cloud computing business model, which can form a resource pool, be used on demand, and be flexible and convenient. Cloud computing technology will become an important support. The background services of the technical network system require a large amount of computing and storage resources, such as video websites, picture websites, and more portal websites. With the high development and application of the Internet industry, in the future, each item may have its own identification mark and needs to be transmitted to the background system for logical processing. Data at different levels will be processed separately, and various industry data requires a powerful system back-end support, which can only be achieved through cloud computing.

[0062] Embodiments of the present application relate to technologies such as cloud computing, cloud storage, and management tools in cloud technology, and store and read process variables during the execution of process instances.

[0063] Cloud Computing is a computing model that distributes computing tasks across a resource pool composed of a large number of computing devices, enabling various application systems to obtain computing power, storage space, and information services as needed. The network that provides resources is called the "cloud". The resources in the "cloud" seem to the user to be infinitely expandable and can be obtained at any time, used on demand, expanded at any time, and paid according to usage.

[0064] As a basic capability provider of cloud computing, a cloud computing resource pool (abbreviated as a cloud platform, generally referred to as an IaaS (Infrastructure as a Service) platform) will be established, and various types of virtual resources will be deployed in the resource pool for external customers to select and use. The cloud computing resource pool mainly includes: computing devices (virtual machines, including operating systems), storage devices, and network devices.

[0065] According to logical function division, a PaaS (Platform as a Service) layer can be deployed on the IaaS layer, and an SaaS (Software as a Service) layer can be deployed on top of the PaaS layer, or the SaaS can also be directly deployed on the IaaS. PaaS is a platform for software operation, such as databases, web containers, etc. SaaS is various business software, such as web portals, SMS mass senders, etc. Generally speaking, SaaS and PaaS are upper layers relative to IaaS.

[0066] Cloud Storage is a new concept extended and developed from the cloud computing concept. A distributed cloud storage system (hereinafter referred to as a storage system) refers to a storage system that combines a large number of different types of storage devices (storage devices are also called storage nodes) in the network through functions such as cluster applications, grid technology, and distributed storage file systems, and works together through application software or application interfaces to jointly provide data storage and business access functions to the outside world.

[0067] Currently, the storage method of the storage system is as follows: Create a logical volume. When creating a logical volume, physical storage space is allocated for each logical volume. This physical storage space may be a certain storage device or the disks of several storage devices. The client stores data on a certain logical volume, that is, stores the data on the file system. The file system divides the data into many parts, and each part is an object. The object not only contains data but also additional information such as data identification (ID, ID entity). The file system writes each object into the physical storage space of the logical volume respectively, and the file system will record the storage location information of each object. Thus, when the client requests to access the data, the file system can enable the client to access the data according to the storage location information of each object.

[0068] The process of the storage system allocating physical storage space for a logical volume is specifically as follows: According to the capacity estimation of the objects stored in the logical volume (this estimation often has a large margin relative to the capacity of the objects to be actually stored) and the group of the redundant array of independent disks (RAID, Redundant Array of Independent Disk), the physical storage space is pre-divided into stripes. A logical volume can be understood as a stripe, thereby allocating physical storage space for the logical volume.

[0069] A database, in short, can be regarded as an electronic filing cabinet - a place to store electronic files. Users can perform operations such as adding, querying, updating, and deleting data in the files. The so-called "database" is a data set stored together in a certain way, shared by multiple users, with the smallest possible redundancy, and independent of the application program.

[0070] The following briefly introduces the design concept of the embodiments of this application:

[0071] For traditional workflow engines, process variables are generally used to control the flow path of business processes, and the amount of data is relatively small at this time. However, in the application scenario of the DevOps network operation process platform, to a certain extent, process variables are also used as a storage medium for a large amount of business data, and the amount of data is large at this time.

[0072] In the application scenario of the DevOps network operation process platform, the traditional BPMN standard process engine has a very simple processing method for process variables. For example, Figure 1A As shown, a relational database (such as MySQL) is used as the main database of the engine. According to business data and control flow path data, the API interface is called to set process variables, and the process variables are directly stored in the main database. However, this processing method faces great challenges in terms of execution performance and operability in the complex DevOps network operation process platform. The specific problems are as follows:

[0073] First, during the business process development process, process variables are set according to a large amount of business data and stored in a relational database. As a result, the volume of the database expands rapidly. Even when only limited historical data is retained, the data volume still reaches the TB level (such as exceeding 2.2 TB). However, relational databases are difficult to scale horizontally and have the problem of the upper limit of single-machine storage space. Therefore, the excessive database volume will affect the execution performance of the relational database, resulting in an increase in the response latency of the API interface of the workflow engine, and further reducing the turnover efficiency of the business process, as Figure 1B shown.

[0074] Second, when the storage space of the relational database is limited, in order to inhibit the continuous growth of the database volume, it is necessary to periodically perform lossy cleaning on historical data (such as only saving the process variables of the historical data in the past six months), which makes it difficult to guarantee the data integrity of the workflow engine and has a certain impact on the historical process backtracking.

[0075] Third, when the database volume is large, cold backup and hot backup are difficult, resulting in difficulty in data recovery in the event of a database disaster.

[0076] Fourth, the continuous growth of the database volume will increase the risk of table structure changes, resulting in more slow queries and difficulty in optimization.

[0077] In view of this, the embodiments of the present application provide a hierarchical processing method for process variables, which can improve the performance, stability and security of the database under a complex DevOps network operation process platform, and at the same time reduce the data maintenance cost of the workflow engine. This method designs a custom hierarchical processing method for the process variables in business process processing. The process variables are divided into multiple storage levels according to the data volume, and the volumes of the databases corresponding to different storage levels are different, so as to realize the reading operations of process variables at different levels, break the limitations of process variable storage, and can fundamentally control the volume of the relational database (such as MySQL) directly relied on by the self-developed workflow engine, thus minimizing the reading pressure on the relational database and maintaining the execution performance of the database; at the same time, reducing the number of data cleaning and table structure optimizations, improving the stability and security of the database, and reducing the operation and maintenance cost of the database.

[0078] The hierarchical processing method for process variables provided by the embodiments of the present application belongs to the processing mechanism for large-scale and large-volume process variables in the self-developed workflow engine service, and is one of the core capabilities of the self-developed workflow engine. Since the self-developed workflow engine is one of the core services of the DevOps network operation process product, responsible for task-driven process tasks and the execution control and distribution of the business logic of actual task nodes, therefore, the processing efficiency and quality of process variables have a crucial impact on the core competitiveness of the DevOps network operation process product.

[0079] The preferred embodiments of the present application will be described below with reference to the accompanying drawings of the specification. It should be understood that the preferred embodiments described herein are only for explaining and illustrating the present application, and are not used to limit the present application. And without conflict, the embodiments in the present application and the features in the embodiments can be combined with each other.

[0080] As Figure 2 shown, it is a schematic diagram of the scenario of the implementation environment of the embodiments of the present application. This scenario diagram includes a terminal device 100 and a server 200.

[0081] In the embodiments of the present application, an application program of the target service is installed and run on the terminal device 100. For example, the application program can be a language processing application such as a compiler or an assembler. The server 200 is a server that provides background services for the application program of the target service by the DevOps network operation process platform. The server 200 includes an execution server 201 and a database server 202. Among them, the execution server is used to process the process variables in the business flow. A database is deployed on the database server 202. The execution server 201 can store the process variables of the terminal device 100 in the business flow into the database server 202, and the execution server 201 can also return the process variables read from the database server 202 in the business flow to the terminal device 100.

[0082] In an alternative embodiment, the terminal device 100 includes, but is not limited to, devices such as mobile phones, tablets, laptops, desktop computers, e-book readers, intelligent voice interaction devices, smart home appliances, and vehicle terminals. The execution server 201 and the database server 202 can be independent physical servers, or a server cluster or distributed system composed of multiple physical servers, or a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, Content Delivery Network (CDN), and big data and artificial intelligence platforms.

[0083] It should be noted that the hierarchical processing method of process variables in each embodiment of this application is mainly executed by the execution server 201. The execution server 201 classifies process variables in the business process into multiple storage levels according to the data volume, and the volumes of the databases corresponding to different storage levels are different, so as to implement the read operations of process variables at different levels, reduce the read pressure on the relational database, improve the system performance, stability and security, and at the same time reduce the data maintenance cost of the self-developed workflow engine.

[0084] In an alternative embodiment, the terminal device 100 and the server 200 can communicate through a communication network, and the execution server 201 and the database server 202 can also communicate through the communication network.

[0085] In an alternative embodiment, the communication network can be a wired network or a wireless network.

[0086] It should be noted that Figure 2 The above is only an example. In fact, the number of terminal devices and servers is not limited and is not specifically defined in the embodiments of this application.

[0087] The hierarchical processing method of process variables provided by the embodiments of this application can be applied to various fields involving task transfer in scenarios such as artificial intelligence, intelligent transportation, assisted driving, and map navigation, such as data production, process approval, project management, administrative services, etc., and is particularly suitable for business processes with high concurrency, requiring fast transfer and retry.

[0088] Next, in combination with the above-described application scenarios, refer to the drawings to describe the hierarchical processing method of process variables provided by the exemplary embodiments of this application. It should be noted that the above application scenarios are only shown for the convenience of understanding the spirit and principle of this application, and the embodiments of this application are not limited in this regard.

[0089] See Figure 3 , which is the implementation process of the hierarchical processing method of process variables provided by the embodiments of this application. This process is executed by the server and mainly includes the following steps:

[0090] S301: During the processing of the business process, the server responds to read and write operations triggered for process variables in the business process.

[0091] Such as Figure 4As shown, it is an example of a business process provided by an embodiment of the present application. Only about 20 task nodes of the business process are included in this example, and each task node is represented by a rounded rectangle. In fact, the number of task nodes of this business process reaches more than 2,000, and the monitors bound to each task node implement specific program processing logics, thus realizing the flow of task nodes. It can be seen that the business forms of NetDevOps products are diverse and the processing logics are extremely complex.

[0092] During the operation of the business process, process variables are shared data existing within the business process. On the one hand, process variables are used to control the flow path of process tasks; on the other hand, considering the network operation scenario and the special composition of developers, in order to further facilitate data storage, process variables are also used as one of the ways to quickly access and store business data, which is different from the traditional business process operation method.

[0093] In practical applications, the process variables in the business process can be stored in a database and read from the database when needed. To reduce the reading pressure on the relational database, multiple storage levels are preset for process variables of different data volumes. The preset variable intervals corresponding to different storage levels are different, and each storage level corresponds to a database, thus realizing the hierarchical reading of process variables of different data volumes.

[0094] In an alternative embodiment, the volumes of the databases corresponding to different storage levels are different, and the volume of the database is positively correlated with the preset variable interval corresponding to the storage level. Among them, the databases used include at least one of non-relational (Not Only SQL, NoSQL) databases and object storage databases and relational databases. The volume of the relational database is smaller than that of the non-relational database, and the volume of the non-relational database is smaller than that of the object storage database. At the same time, the preset variable interval of the storage level corresponding to the relational database is smaller than the preset variable interval of the storage level corresponding to the non-relational database, and the preset variable interval of the storage level corresponding to the non-relational database is smaller than the preset variable interval of the storage level corresponding to the object storage database.

[0095] In an alternative embodiment, the relational databases include but are not limited to MySQL, Oracle, SQL Server, Sybase, Microsoft Access, etc.; the non-relational databases include but are not limited to ClickHouse, ElasticSearch (abbreviated as ES), TiKV, Mongodb, Redis, etc.; the object storage databases include but are not limited to Cloud Object Storage (COS), BOS, DB4O, ObjectStore, etc.

[0096] Taking three storage levels as an example, the preset variable intervals and databases corresponding to each storage level are shown in Table 1.

[0097] Table 1 (Storage level division strategy)

[0098] Storage level Preset variable range (unit: KB) Database Low level [0,1) MySQL Medium level [1,512) ClickHouse High level [512,+∞) COS

[0099] It should be noted that Table 1 is only an example, and the embodiments of the present application do not make restrictive requirements on the number of levels and the size of the preset variable intervals. In actual business, different classification strategies and different storage methods can be considered according to business needs.

[0100] During the processing of the business process, for read and write operations triggered by process variables in the business process, the server can make different responses according to the operation type. Among them, the response process for write operations can be seen in S302 - S303, and the response process for read operations can be seen in S304 - S305.

[0101] S302: For write operations, the server obtains the target storage level of the process variable based on the data volume size of the variable value of the currently to - be - processed process variable, and stores the variable value in the target database corresponding to the target storage level.

[0102] During the write operation, the terminal device sends a write (set) request to the server and specifies the currently to - be - processed process variable in the set request. After receiving the set request, the server obtains the target storage level of the process variable based on the data volume size of the variable value of this process variable, and stores the variable value in the target database corresponding to the target storage level.

[0103] The writing process of the process variable can be seen in Figure 5 , and mainly includes the following steps:

[0104] S3021: Traverse each preset storage level.

[0105] S3022: For a currently traversed storage level, obtain the preset variable interval corresponding to the storage level.

[0106] S3023: Determine whether the data volume size of the variable value of the process variable is within the preset variable interval. If so, execute S3024; if not, return to S3021 to continue traversing the next storage level.

[0107] S3024: Take the current storage level as the target storage level of the process variable and stop traversing.

[0108] S3025: Store the variable value of the process variable in the target database corresponding to the target storage level.

[0109] Taking the storage levels shown in Table 1 as an example, as Figure 6 shown, after the process variable memory in the server receives a set request, it will call the router. The router automatically identifies the data volume size of the variable value of the process variable and compares it with the preset variable ranges of each storage level. If the data volume size of the variable value is less than 1KB, it is determined that the storage level of the process variable is low, and the variable value is stored in the MySQL database; if the data volume size of the variable value is greater than 1KB and less than 512KB, it is determined that the storage level of the process variable is medium, and the variable value is stored in the ClickHouse database; if the data volume size of the variable value is greater than 512KB, it is determined that the storage level of the process variable is high, and the variable value is stored in the COS database. Through this writing method, process variables used to control process flow with relatively small data volumes and process variables storing business data can be stored in a more efficient relational database.

[0110] In the embodiments of the present application, by dividing the storage levels, the combined use of different types of databases is realized according to the storage levels where different variable sizes are located, improving the flexibility of database selection.

[0111] For example, the variable values of process variables less than 1K are stored using a high-speed lightweight relational database (such as MySQL), the variable values of process variables from 1KB to 512KB are stored using a medium-sized database (such as ClickHouse), and the variable values of process variables greater than 512KB are stored using a large-sized object storage database (such as COS).

[0112] Among them, the smaller the data volume of the variable value of the process variable, the smaller the size of the database corresponding to its storage level. In the DevOps network operation process platform, the variable values of process variables used to control process flow are usually very small. Therefore, the variable values of such process variables will be stored in a relatively small-sized relational database, thus ensuring the processing efficiency of the process.

[0113] Taking the map navigation scenario as an example, in this business process, the process variables used to control process flow are direction variables. The values of these variables include, but are not limited to, turning left, turning right, going straight, making a U-turn, getting on a bridge, etc., and the number of bytes occupied is very small. Therefore, they will be stored in a relational database, thus improving the navigation efficiency.

[0114] S303: The server records the storage method corresponding to the process variable.

[0115] During the write operation, to ensure the normal use of subsequent process variables, when storing the variable values of process variables in the target database, the storage method corresponding to the process variables can be recorded. Here, the storage method is used to indicate the type of the target database where the process variables at the target storage level are located, denoted as the variable mounting type.

[0116] For example, the database corresponding to the low storage level is a relational database, the database corresponding to the medium storage level is a non-relational database, and the database corresponding to the high storage level is an object storage database.

[0117] In an optional embodiment, the server stores a variable registry for business processes. During the write operation, the metadata of the process variables can be recorded in the variable registry for use during the read operation.

[0118] Since one or more business processes can be started during the process definition in actual applications. Therefore, depending on the number of started business processes, the metadata recorded in the variable registry is different.

[0119] When a business process runs alone, that is, the process definition starts only one business process, the write operation of the process variable is as Figure 7A shown. The terminal device specifies the variable name and variable value of the currently pending process variable through a set request. After receiving the set request, the process variable accessor in the server calls the router to determine the target storage level of the process variable and the corresponding storage method. Since the variable names of different process variables are different in a business process, at this time, the available variable name of the process variable is uniquely represented. Therefore, the variable name of the process variable is written as the key of the process variable into the variable registry, and at the same time, the corresponding storage method (i.e., the variable mounting type) is written into the variable registry.

[0120] When a business process runs together with other business processes, that is, the process definition starts multiple business processes, each business process can be represented by an instance identifier (such as ID), and the write operation of the process variable is as Figure 7BAs shown in the figure, the terminal device specifies the instance identifier of the business process to which the process variable to be processed currently belongs, as well as the variable name and variable value of the process variable through a set request. After the process variable accessor in the server receives the set request, it calls the router to determine the target storage level of the process variable and the corresponding storage method. Since the combination of the variable name of the process variable and the instance identifier of the business process to which it belongs is globally unique, that is, the variable names in the same business process cannot be repeated. At this time, the process variable can be uniquely represented by the variable name of the process variable and the instance identifier to which the process variable belongs. Therefore, the variable name of the process variable is used as the key of the process variable and written into the variable registry together with the instance identifier to which the process variable belongs. At the same time, the corresponding storage method (i.e., variable mounting type) is also written into the variable registry.

[0121] In an alternative embodiment, in order to facilitate developers' in-depth understanding of process variables, when writing process variables, the data volume size of the variable value of the process variable can also be written into the variable registry, thereby improving the readability of process variables.

[0122] In an alternative embodiment, in order to facilitate operations on the read process variables, such as type conversion, when writing process variables, the variable type of the process variable can also be written into the variable registry. The variable type is used to represent the data type of the variable value of the stored process variable, so as to convert the read variable value into the corresponding type for subsequent processing.

[0123] Taking the co - operation of multiple business processes as an example, the data structure of the variable registry is shown in Table 2.

[0124] Table 2

[0125] (Data structure of the variable registry)

[0126] Among them, the content before "#" in the storage method represents the database, which is used to mark the storage component where the variable value is stored, and the content after "#" represents the access identifier of the database for the backend to access.

[0127] It should be noted that Table 2 is only an example, and the embodiments of the present application do not make restrictive requirements on variable types, data volume units, etc. In actual applications, it can be adaptively adjusted according to business requirements.

[0128] In the embodiments of the present application, by setting a variable registry to save the metadata of all process variables, since the metadata includes the storage method of the process variable obtained based on the storage level corresponding to the data volume size, therefore, during subsequent read operations, the variable value can be directly read from the corresponding type of database through the storage method corresponding to the process variable in the variable registry.

[0129] See Figure 8 , which is a timing flowchart for writing process variables, mainly including the following steps:

[0130] S801: The self-developed workflow engine in the execution server sends a set request to the process variable accessor to set the process variables for the business process.

[0131] Among them, the set request carries the instance identifier of the business process to which the currently to-be-processed process variable belongs and the variable name of the process variable.

[0132] S802: The process variable accessor calls the router of the execution server according to the received set request.

[0133] S803: The router obtains the data volume size and data type of the variable value of the process variable based on the instance identifier and variable name.

[0134] S804: The router obtains the target storage level of the process variable based on the data volume size of the variable value.

[0135] S805: The router obtains the target database for storing the variable value based on the obtained target storage level and records the storage method corresponding to the process variable.

[0136] S806: The router writes the instance identifier of the business process to which the process variable belongs, the variable name, the data volume size and variable type of the variable value, and the storage method into the corresponding variable registry of the execution server.

[0137] S807: The router stores the variable value of the process variable into the target database corresponding to the target storage level.

[0138] Among them, the target database is deployed on the database server, which is an external storage component relative to the execution server.

[0139] S808: The router returns the process variable writing result to the process variable memory.

[0140] Among them, the writing result includes writing success or writing failure.

[0141] S809: The process variable accessor forwards the writing result to the self-developed workflow engine.

[0142] In the embodiments of the present application, by dividing multiple storage levels, process variables of different data volumes are hierarchically stored in different databases, thereby reducing the storage pressure on the relational database. Among them, the databases used include at least one of a non-relational database and an object storage database and a relational database, and the volume of the database is positively correlated with the preset variable range corresponding to the storage level. In this way, the variable values of process variables with smaller data volumes are stored in the relational database, while the variable values of process variables with larger data volumes are stored in at least one of the non-relational database and the object storage database. Since the non-relational database and the object storage database can exist independently of the relational database (main database) corresponding to the self-developed workflow engine, the volume of the relational database directly relied on by the self-developed workflow engine is fundamentally controlled. On the other hand, in the DevOps network operation process platform, the data volume of the process variables used to control the process flow is usually very small, while the data volume of the process variables corresponding to the business layer data unrelated to the process flow is usually large. In this way, according to the hierarchical storage method, the variable values of the process variables used to control the process flow are stored in the relational database, and the variable values of the process variables corresponding to the business layer data are stored in at least one of the non-relational database and the object storage database. Since the relational database has a faster access speed than the non-relational database and the object storage database, the access efficiency of the self-developed workflow engine can be guaranteed. At the same time, hierarchical storage can effectively reduce the volume of the relational database, thereby improving the execution performance of the system.

[0143] In addition, compared with the relational database, the non-relational database and the object storage database have better horizontal scalability. They store data in a cluster manner and are not affected by the single-machine storage capacity. Therefore, the variable values of the process variables can be stored for a long time, reducing the data loss caused by frequent data cleaning, improving the integrity and security of the data, and at the same time, reducing the data maintenance cost of the self-developed workflow engine.

[0144] S304: For the read operation, the server obtains the storage method of the process variable based on the record corresponding to the current process variable to be processed during the write operation.

[0145] During the read operation, the terminal device sends a read (get) request to the server and specifies the current process variable to be processed in the get request. After receiving the get request, the server queries the process variable registry recorded during the write operation of the process variable to obtain the storage method of the process variable.

[0146] Since the number of business processes started during process definition is different, the metadata of the process variables recorded in the variable registry is different. Therefore, during the read operation, the method for obtaining the storage method of the process variable is different.

[0147] When the business process is run alone, that is, the process definition only starts one business process. At this time, for the schematic diagram of reading process variables, see Figure 9A , the terminal device specifies the variable name of the current process variable to be processed through a get request. After the process variable accessor in the server receives the get request, it calls the router to query the variable registry. Since the variable names of different process variables are different in a business process, that is, the available variable names of process variables are uniquely represented, therefore, when using the variable name of the process variable as the key of the process variable to query the variable registry, the unique storage method corresponding to the process variable can be obtained.

[0148] When the business process runs together with other business processes, that is, the process definition starts multiple business processes, and each business process can be represented by an instance identifier (such as ID). At this time, for the schematic diagram of reading process variables, see Figure 9B , the terminal device specifies the instance identifier of the business process to which the current process variable to be processed belongs and the variable name of the process variable through a get request. After the process variable accessor in the server receives the get request, it calls the router to query the variable registry. Since the combination of the variable name of the process variable and the instance identifier of the business process to which it belongs is globally unique, that is, the variable names in the same business process cannot be repeated. In this way, the process variable can be uniquely represented by the variable name of the process variable and the instance identifier of the business process to which it belongs. Therefore, based on the variable name of the process variable as the key of the process variable and the instance identifier of the business process to which it belongs to query the variable registry together, the unique storage method corresponding to the process variable can be obtained.

[0149] S305: The server obtains the variable value of the process variable from the target database corresponding to the volume based on the storage method.

[0150] As Figure 9A and Figure 9B shown, since the storage method queried from the variable registry is used to indicate the type of the target database where the process variable at the target storage level is located, therefore, the variable value of the process variable can be read from the target database of the corresponding type indicated by the storage method.

[0151] Taking the map navigation scenario as an example, in this business process, when the current process variable to be processed is a direction variable used to control the flow of the process, its data volume is usually small. Assuming that the corresponding storage level is low, at this time, the server obtains the variable key "result_direction" and the instance identifier "0001" through a get request to query the variable registry, and obtains that the type of the target database where the low-level variable is located is a relational database. Therefore, the variable value of the variable is read from MySQL, and the read result is "turn left"; when the current process variable to be processed is a scenic spot variable used to store business data, its data volume is usually large. Assuming that the corresponding storage level is intermediate, at this time, the server obtains the variable key "result_ferris_wheel" and the instance identifier "0001" through a get request to query the variable registry, and obtains that the type of the target database where the intermediate variable is located is a non-relational database. Therefore, the variable value of the variable is read from ClickHouse, and the read result is "The Ferris wheel you passed by is the only Ferris wheel built on a bridge in the world."

[0152] See also Figure 10 , which is the timing flow chart for reading process variables, mainly includes the following steps:

[0153] S1001: The self-developed workflow engine in the execution server initiates a get request to the process variable accessor to read the process variables in the business process.

[0154] The get request carries the instance identifier of the business process to which the process variable currently to be processed belongs and the variable name of the process variable.

[0155] S1002: The process variable accessor calls the router of the execution server according to the received get request.

[0156] S1003: The router queries the variable registry based on the instance identifier and the variable name, and obtains metadata in the variable registry.

[0157] The metadata in the variable registry includes the instance identifier of the business process to which the process variable belongs, the key of the process variable, the type and data size of the variable value, and the storage method of the process variable.

[0158] S1004: The router parses the target database type corresponding to the process variable of the target storage level from the storage method of the metadata.

[0159] S1005: The router accesses a target database of a corresponding type in the database server to obtain variable values of process variables.

[0160] S1006: The router returns the read variable value to the process variable storage.

[0161] S1007: The process variable memory returns the read variable value to the self-developed workflow engine.

[0162] In the embodiments of the present application, for the process variables in the business process, they are divided into multiple storage levels according to the data volume. In this way, process variables with different data volumes can be stored in databases corresponding to different storage levels, thereby reducing the volume of the relational database directly relied on by the self-developed workflow engine. Furthermore, when accessing the relational database to read variable values, the system performance can be effectively improved. At the same time, based on the relational database, by introducing at least one of the horizontally scalable non-relational database and object storage database, lossless storage of data is achieved. In this way, the server can read variable values within a longer time, improving the accuracy of subsequent analysis of the business process.

[0163] In the embodiments of the present application, when hierarchically reading process variables, since the process variables can be uniquely represented by the variable name or the variable name and the instance of the business process to which the process variable belongs, in this way, through a unified process variable accessor, the upper-layer service only needs to focus on the representation of the flow variables written or read, and does not need to care about the variable value, type, storage location, etc. of the process variable, which is more friendly to the development of the upper-layer service.

[0164] To verify the effectiveness of the embodiments of the present application, under the DevOps network operation process platform, the results of the open-source workflow engine Flowable of the BPNM series using the traditional method were compared with the results of the self-developed workflow engine of the present application using the hierarchical processing method. Among them, the volume of the relational database (i.e., the main database) relied on by the Flowable engine reached 2.2TB. The space was mainly occupied by process variables storing business data with large data volumes, and the volume increased by more than 200GB per month on average, and the data volume expanded rapidly, which brought great uncertainty to the performance and stability of the Flowable engine, and also brought relatively high database operation and maintenance costs. However, through the hierarchical processing of process variables, the self-developed workflow engine in the present application migrated process variables with large data volumes from the main database to external storage components (i.e., at least one of the non-relational database and object storage database), greatly reducing the load on the main database, making its total volume not exceed 50GB, fundamentally suppressing the volume of the relational database. Compared with the Flowable engine, the volume decreased by at least 50 times. At the same time, due to the good horizontal scalability of the external storage components, there is no need to frequently clean historical data, reducing data loss and improving data integrity.

[0165] Based on the same inventive concept, an embodiment of the present application further provides a hierarchical processing device for process variables. This hierarchical processing device can implement the above-mentioned hierarchical processing method for process variables and achieve the same technical effects.

[0166] See Figure 11 , the hierarchical processing device includes a response module 1101, a writing module 1102, and a reading module 1103, where:

[0167] The response module 1101 is configured to, during the processing of the service process, respond to read and write operations triggered for the process variables in the service process;

[0168] The writing module 1102 is configured to, when the read and write operation is a write operation, obtain the target storage level of the process variable based on the data volume size of the variable value of the currently to-be-processed process variable, store the variable value into the target database corresponding to the target storage level, and record the storage method corresponding to the process variable. The storage method is used to indicate: the type of the target database where the process variable of the target storage level is located;

[0169] The reading module 1103 is configured to, when the read and write operation is a read operation, obtain the storage method of the process variable based on the record corresponding to the currently to-be-processed process variable during the write operation, and obtain the variable value of the process variable from the target database of the corresponding type based on the storage method.

[0170] Optionally, the writing module 1102 is specifically configured to:

[0171] Traverse each preset storage level. For each traversed storage level, perform the following operations:

[0172] Obtain the preset variable range corresponding to the storage level;

[0173] If the data volume size of the variable value of the process variable is within the preset variable range, use the current storage level as the target storage level of the process variable and stop traversing; otherwise, continue to traverse the next storage level.

[0174] Optionally, the databases corresponding to different storage levels have different volumes, and the volume of the database is positively correlated with the preset variable range corresponding to the storage level.

[0175] Optionally, the database includes at least one of a non-relational database and an object storage database and a relational database, where the volume of the relational database is smaller than that of the non-relational database, and the volume of the non-relational database is smaller than that of the object storage database.

[0176] Optionally, a variable registry is stored corresponding to the business process. When the business process is run alone, the writing operation 1102 is specifically used for:

[0177] Using the variable name of the process variable as the key of the process variable, and writing the key of the process variable and the storage method into the variable registry; wherein, the variable names of different process variables are different in the business process.

[0178] Optionally, the reading operation 1103 is specifically used for:

[0179] Querying the variable registry based on the key of the process variable to obtain the storage method corresponding to the process variable.

[0180] Optionally, a variable registry is stored corresponding to the business process. When the business process runs together with other business processes and each business process corresponds to an instance identifier, the writing operation 1102 is specifically used for:

[0181] Using the variable name of the process variable as the key of the process variable, and writing the key of the process variable, the instance identifier of the business process to which it belongs, and the storage method into the variable registry, wherein the combination of the variable name of the process variable and the instance identifier of the business process to which it belongs has global uniqueness.

[0182] Optionally, the reading operation 1103 is specifically used for:

[0183] Querying the variable registry based on the key of the process variable and the instance identifier to which the process variable belongs to obtain the storage method corresponding to the process variable.

[0184] Optionally, the variable registry also records at least one of the variable type and the data volume size of the variable value.

[0185] In a process variable grading device provided by an embodiment of the present application, for process variables in a business process, when a write operation is performed, according to the data volume size of the variable value of the process variable, variable values of different data volume sizes are stored in databases corresponding to different storage levels, thereby reducing the data volume in the relational database, reducing the storage pressure of the relational database, and then improving the write performance of the database. Moreover, during the write operation, the storage method corresponding to each process variable will also be recorded, and each storage method is used to indicate: the type of the database where the process variable of the corresponding storage level is located. In this way, when a read operation is performed, the storage method of the process variable recorded by the write operation can be used to efficiently and quickly obtain the corresponding variable value from the target database of the corresponding type, thereby reducing the read pressure on the relational database. On the other hand, by dividing the storage levels and introducing multiple types of databases, the frequent data cleaning caused by the storage space limitation of the relational database is reduced, the stability and security of the database are improved, and at the same time, the maintenance cost of the database is reduced.

[0186] For the convenience of description, the above parts are divided into each module (or unit) according to functions and described separately. Of course, when implementing the present application, the functions of each module (or unit) can be implemented in the same or multiple software or hardware.

[0187] After introducing any process variable grading processing method and device of the exemplary embodiment of the present application, next, an electronic device according to another exemplary embodiment of the present application will be introduced.

[0188] Those skilled in the art of the present technical field can understand that various aspects of the present application can be implemented as a system, method, or program product. Therefore, various aspects of the present application can be specifically implemented in the following forms, namely: a complete hardware implementation, a complete software implementation (including firmware, microcode, etc.), or an implementation combining hardware and software aspects, which can be collectively referred to as "circuit", "module", or "system" here.

[0189] Based on the same inventive concept as the above method embodiment, an electronic device is also provided in an embodiment of the present application. In one embodiment, the electronic device can be a server, such as Figure 2 the execution server 201 shown. In this embodiment, the structure of the electronic device can be as Figure 12 shown, including a memory 1201, a communication module 1203, and one or more processors 1202.

[0190] The memory 1201 is used to store the computer program executed by the processor 1202. The memory 1201 may mainly include a program storage area and a data storage area. Among them, the program storage area may store an operating system and programs required to run the instant messaging function, etc.; the data storage area may store various instant messaging information and operation instruction sets, etc.

[0191] The memory 1201 may be a volatile memory, such as a random-access memory (RAM); the memory 1201 may also be a non-volatile memory, such as a read-only memory, a flash memory, a hard disk drive (HDD), or a solid-state drive (SSD); or the memory 1201 is any other medium capable of carrying or storing a desired computer program in the form of instructions or data structures and accessible by a computer, but not limited thereto. The memory 1201 may be a combination of the above memories.

[0192] The processor 1202 may include one or more central processing units (CPUs) or be a digital processing unit, etc. The processor 1202 is used to implement the hierarchical processing method of any of the above process variables when calling the computer program stored in the memory 1201.

[0193] The communication module 1203 is used to communicate with the terminal device and other servers.

[0194] In the embodiments of the present application, the specific connection medium between the above memory 1201, communication module 1203, and processor 1202 is not limited. In the embodiments of the present application Figure 12 it is described that the memory 1201 and the processor 1202 are connected through a bus 1204, and the bus 1204 is described in thick lines in Figure 12 The connection manners between other components are only for illustrative purposes and are not to be taken as limiting. The bus 1204 may be divided into an address bus, a data bus, a control bus, etc. For the sake of convenience of description, Figure 12 only one thick line is used to describe it in

[0195] The memory 1201 stores a computer storage medium, and the computer storage medium stores computer-executable instructions for implementing the hierarchical processing method of any of the embodiments of the present application. The processor 1202 is used to execute the hierarchical processing method of any of the above process variables, as Figure 3 shown.

[0196] In some possible embodiments, various aspects of any of the hierarchical processing methods for process variables provided in this application can also be implemented in the form of a program product, which includes a computer program. When the program product runs on an electronic device, the computer program is used to cause the electronic device to execute the steps in any of the hierarchical processing methods for process variables according to various exemplary embodiments of this application described above in this specification. For example, the electronic device can execute the steps as shown in Figure 3 shown therein.

[0197] The program product can adopt any combination of one or more readable media. The readable medium can be a readable signal medium or a readable storage medium. The readable storage medium can be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the above. More specific examples (non-exhaustive list) of the readable storage medium include: an electrical connection having one or more wires, a portable disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above.

[0198] The program product of the embodiments of this application can adopt a portable compact disk read-only memory (CD-ROM) and include a computer program, and can run on an electronic device. However, the program product of this application is not limited thereto. In this document, the readable storage medium can be any tangible medium that contains or stores a program that can be used by or in conjunction with a command execution system, apparatus, or device.

[0199] The readable signal medium can include a data signal propagated in a baseband or as part of a carrier wave, which carries a readable computer program. Such a propagated data signal can take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. The readable signal medium can also be any readable medium other than the readable storage medium, which can send, propagate, or transmit a program for use by or in conjunction with a command execution system, apparatus, or device.

[0200] The computer program included on the readable medium can be transmitted by any suitable medium, including but not limited to wireless, wired, optical fiber, RF, etc., or any suitable combination of the above.

[0201] The computer program for performing the operations of the present application may be written in any combination of one or more programming languages. The programming languages include object-oriented programming languages such as Java, C++, etc., and also include conventional procedural programming languages such as the "C" language or similar programming languages. The computer program may be executed entirely on the user's electronic device, partially on the user's electronic device, executed as a stand-alone software package, partially on the user's electronic device and partially on a remote electronic device, or entirely on a remote electronic device or server. In the case of a remote electronic device, the remote electronic device may be connected to the user's electronic device through any type of network including a local area network (LAN) or a wide area network (WAN), or it may be connected to an external electronic device (e.g., connected through the Internet using an Internet service provider).

[0202] It should be noted that although several units or subunits of the device are mentioned in the above detailed description, this division is merely exemplary and not mandatory. In fact, according to the embodiments of the present application, the features and functions of two or more of the above-described units may be embodied in one unit. Conversely, the features and functions of one unit described above may be further divided and embodied by multiple units.

[0203] In addition, although the operations of the method of the present application are described in a specific order in the drawings, this does not require or imply that these operations must be performed in that specific order, or that all of the operations shown must be performed to achieve the desired result. Additionally or alternatively, some steps may be omitted, multiple steps may be combined into one step for execution, and / or one step may be decomposed into multiple steps for execution.

[0204] Those skilled in the art should understand that the embodiments of the present application may be provided as a method, a system, or a computer program product. Therefore, the present application may take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware aspects. Moreover, the present application may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) that contain computer-usable computer programs.

[0205] This application is described with reference to the flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present application. It should be understood that each flow and / or block in the flowcharts and / or block diagrams, and the combination of flows and / or blocks in the flowcharts and / or block diagrams, can be realized by computer program instructions. These computer program instructions can be provided to the processors of general-purpose computers, special-purpose computers, embedded processors, or other programmable data processing devices to generate a machine, such that the instructions executed by the processors of the computer or other programmable data processing devices generate means for realizing the functions specified in one or more flows in the flowchart and / or one or more blocks in the block diagram.

[0206] These computer program instructions can also be stored in a computer-readable memory that can direct a computer or other programmable data processing device to work in a specific manner, such that the instructions stored in the computer-readable memory generate a manufacture including instruction means that realizes the functions specified in one or more flows in the flowchart and / or one or more blocks in the block diagram.

[0207] These computer program instructions can also be loaded onto a computer or other programmable data processing device, such that a series of operation steps are executed on the computer or other programmable device to generate a computer-implemented process, so that the instructions executed on the computer or other programmable device provide steps for realizing the functions specified in one or more flows in the flowchart and / or one or more blocks in the block diagram.

[0208] Although the preferred embodiments of the present application have been described, those skilled in the art can make additional changes and modifications once they learn the basic creative concept. Therefore, the appended claims are intended to be construed to include the preferred embodiments and all changes and modifications that fall within the scope of the present application.

[0209] Obviously, those skilled in the art can make various changes and variations to the present application without departing from the spirit and scope of the present application. Thus, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalent technologies, the present application is also intended to include these modifications and variations.

Claims

1. A hierarchical processing method for process variables, characterized in that, The method includes: During the processing of the business process, every time a read / write operation triggered by a process variable in the business process is responded to, the following processing is performed: When the read / write operation is a write operation, based on the data volume size of the variable value of the currently to-be-processed process variable, obtain the target storage level of the process variable, store the variable value in the target database corresponding to the target storage level, and record the storage method corresponding to the process variable, where the storage method is used to indicate: the type of the target database where the process variable of the target storage level is located; When the read / write operation is a read operation, based on the record corresponding to the currently to-be-processed process variable during the write operation, obtain the storage method of the process variable, and based on the storage method, obtain the variable value of the process variable from the target database of the corresponding type.

2. The method according to claim 1, wherein The obtaining the target storage level of the process variable based on the data volume size of the variable value of the currently to-be-processed process variable includes: Traverse each preset storage level, and for each traversed storage level, perform the following operations: Obtain the preset variable range corresponding to the storage level; If the data volume size of the variable value of the process variable is within the preset variable range, use the current storage level as the target storage level of the process variable and stop traversing; otherwise, continue to traverse the next storage level.

3. The method according to claim 1, characterized in that The volumes of the databases corresponding to different storage levels are different, and the volume of the database is positively correlated with the preset variable range corresponding to the storage level.

4. The method according to claim 3, wherein The database includes at least one of a non-relational database and an object storage database and a relational database, where the volume of the relational database is smaller than that of the non-relational database, and the volume of the non-relational database is smaller than that of the object storage database.

5. The method according to any one of claims 1-4, characterized in that A variable registration table is stored corresponding to the business process. When the business process runs alone, the recording the storage method corresponding to the process variable includes: Use the variable name of the process variable as the key of the process variable, and write the key of the process variable and the storage method into the variable registration table; where the variable names of different process variables are different in the business process.

6. The method according to claim 5, wherein The obtaining the storage method of the process variable based on the record corresponding to the currently to-be-processed process variable during the write operation includes: Query the variable registration table based on the key of the process variable to obtain the storage method corresponding to the process variable.

7. The method according to any one of claims 1-4, characterized in that A variable registration table is stored corresponding to the business process. When the business process runs together with other business processes and each business process corresponds to an instance identifier, the recording the storage method corresponding to the process variable includes: Use the variable name of the process variable as the key of the process variable, and write the key of the process variable, the instance identifier of the business process to which it belongs, and the storage method into the variable registration table, where the combination of the variable name of the process variable and the instance identifier of the business process to which it belongs has global uniqueness.

8. The method according to claim 7, wherein Obtaining the storage mode of the process variable based on the record corresponding to the current process variable to be processed during the write operation includes: Querying the variable registry based on the key of the process variable and the instance identifier to which the process variable belongs, and obtaining the storage mode corresponding to the process variable.

9. The method according to claim 7, wherein The variable registry also records at least one of the variable type and the data volume size of the variable value.

10. A hierarchical processing device for process variables, characterized in that, It includes: A response module, configured to respond to read and write operations triggered for process variables in the business process during the processing of the business process; A write module, configured to, when the read and write operation is a write operation, obtain the target storage level of the process variable based on the data volume size of the variable value of the current process variable to be processed, store the variable value in the target database corresponding to the target storage level, and record the storage mode corresponding to the process variable, where the storage mode is used to indicate: the type of the target database where the process variable at the target storage level is located; A read module, configured to, when the read and write operation is a read operation, obtain the storage mode of the current process variable to be processed based on the record corresponding to the current process variable to be processed during the write operation, and obtain the variable value of the process variable from the target database of the corresponding type based on the storage mode.

11. An electronic device, characterized in that, It includes a processor and a memory, where the memory stores a computer program, and when the computer program is executed by the processor, the processor is caused to execute the steps of any one of claims 1 to 9.

12. A computer-readable storage medium, characterized in that, It includes a computer program, and when the computer program runs on an electronic device, the computer program is used to cause the electronic device to execute the steps of any one of claims 1 to 9.

13. A computer program product, characterized in that, It includes a computer program, and the computer program is stored in a computer-readable storage medium; when the processor of the electronic device reads the computer program from the computer-readable storage medium, the processor executes the computer program, causing the electronic device to execute the steps of any one of claims 1 to 9.