Data collaborative processing method and device and computer device
By generating process instances on the server and executing the processing module, the stability and efficiency issues of multi-department collaborative data processing were resolved, achieving reliability and accuracy in collaborative data processing while reducing costs and hardware resource consumption.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- NETEASE (HANGZHOU) NETWORK CO LTD
- Filing Date
- 2022-10-17
- Publication Date
- 2026-08-04
AI Technical Summary
In existing technologies, when multiple departments collaborate to process data, there is a risk of data loss or module damage, resulting in low stability and efficiency. Furthermore, the cost is high under specific software requirements, and hardware resources are consumed in large quantities.
The system retrieves pending data, processing modules, and configuration information sent by technical personnel from different departments via a server, generates process instances, and executes the processing modules in a predetermined order to achieve collaborative data processing.
It improves the stability, efficiency, reliability, and accuracy of data collaborative processing, reduces the risk of data loss and module damage, and lowers software installation costs.
Smart Images

Figure CN115617519B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of computer technology, and more specifically, to a data collaborative processing method, apparatus, and computer device. Background Technology
[0002] With the development of computer technology, people can use computer equipment to perform all kinds of data processing, which can greatly improve people's work efficiency.
[0003] In related technologies, situations often arise where technical personnel from different departments need to collaborate on data processing. For example, the development department might create multiple functional modules to implement specific operations, the data acquisition department might collect the corresponding data to be processed, the editing department might input the appropriate parameters for each functional module according to actual needs, and then encapsulate these modules into a workflow script. This script is then run on the appropriate program to process the data, and finally, the operations and maintenance department's technical personnel verify the processed data or repair the workflow script. Furthermore, because multiple departments are involved, it is necessary for technical personnel from each department to transfer various data, scripts, or modules to each other to ensure the successful completion of data processing.
[0004] However, in related technical solutions, the need for technical personnel from multiple departments to transfer data, scripts, or modules poses a risk of data loss or module corruption. Furthermore, if data, scripts, or modules change, technical personnel from other departments cannot obtain the updated data, scripts, or modules in a timely manner. Therefore, these technical solutions suffer from poor stability and low efficiency. Summary of the Invention
[0005] The purpose of this application is to provide a data collaborative processing method, apparatus, and computer equipment that can improve the stability and efficiency of data collaborative processing.
[0006] The embodiments of this application are implemented as follows:
[0007] A first aspect of this application provides a data collaborative processing method applied to a server, the method comprising:
[0008] Acquire at least one piece of data to be processed sent by a first terminal device;
[0009] Based on information from a processing module sent by at least one second terminal device, at least one processing module is obtained, wherein each processing module is used to perform one or more business operations.
[0010] The system obtains configuration information sent by at least one third terminal device, the configuration information being used to indicate the association information between the processing module and the data to be processed, between the processing module and other processing modules, and the execution parameters of the processing module;
[0011] A process instance is generated based on the configuration information and the processing module. The process instance is used to indicate the data to be processed that needs to be called and the business operations that the processing module needs to perform on the data to be processed.
[0012] Execute the process instance and output the execution result data after the process instance is executed.
[0013] A second aspect of this application provides a data collaborative processing apparatus applied to a server, the apparatus comprising:
[0014] The first acquisition module is used to acquire data to be processed sent by at least one first terminal device;
[0015] The second acquisition module is used to acquire at least one processing module based on information sent by at least one second terminal device, wherein each of the processing modules is used to perform one or more business operations.
[0016] The third acquisition module is used to acquire configuration information sent by at least one third terminal device. The configuration information is used to indicate the association information between the processing module and the data to be processed, between the processing module and other processing modules, and the execution parameters of the processing module.
[0017] A generation module is used to generate a process instance based on the configuration information and the processing module. The process instance is used to indicate the data to be processed that needs to be called and the business operations that the processing module needs to perform on the data to be processed.
[0018] The execution output module is used to execute the process instance and output the execution result data after the process instance is executed.
[0019] A third aspect of this application provides a computer device, the computer device including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the computer program, when executed by the processor, implements the data collaborative processing method described in the first aspect above.
[0020] A fourth aspect of this application provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the data collaborative processing method described in the first aspect.
[0021] The beneficial effects of the embodiments of this application include:
[0022] This application provides a data collaborative processing method that obtains data to be processed sent by at least one first terminal device, obtains at least one processing module based on information of a processing module sent by at least one second terminal device, obtains configuration information sent by at least one third terminal device, generates a process instance based on each configuration information and each processing module, executes the process instance, and outputs the execution result data after the execution of the process instance.
[0023] Since the data to be processed, the information of the processing module, and the configuration information can be collected, written, and input by technicians from different departments operating different terminal devices, the server can obtain the data to be processed sent by at least one first terminal device, obtain at least one processing module based on the information of the processing module sent by at least one second terminal device, and obtain the configuration information sent by at least one third terminal device. This allows the server to obtain the data to be processed, the information of the processing module, and the configuration information sent by technicians from different departments or by different technicians. Furthermore, the server can determine which processing modules need to be called to perform what business operations on which output data, thereby achieving the goal of collaborative data processing among multiple departments.
[0024] Based on the configuration information and processing modules, a process instance is generated. Since the process instance is generated according to the configuration information and processing modules, it is used to indicate the data to be processed, the processing module to be called, and the business operation that the processing module needs to perform on the data to be processed. In this way, the server can accurately determine the processing required for each data to be processed, thereby improving the reliability and accuracy of data collaborative processing.
[0025] This process instance is executed, and the execution result data is output. Executing this process instance can refer to executing each processing module sequentially, and calling the data to be processed that is related to each processing module during execution, so that each processing module can perform corresponding business operations on the data to be processed. Furthermore, since the processing modules are also related, the output of other processing modules can be used as the input of any processing module during execution, and the output of any processing module can be used as the input of other processing modules after execution. In this way, the goal of accurate and reliable data processing can be achieved.
[0026] Because the server can directly obtain the data to be processed, the information of the processing module, and the configuration information collected, written, and input by technical personnel from multiple departments or multiple technical personnel through each first terminal device, each second terminal device, and each third terminal device, in other words, technical personnel from multiple departments or multiple technical personnel only need to send the data, information, or modules they are responsible for to the server, and the server can then perform collaborative processing of the data to be processed. This eliminates the need for technical personnel to exchange the data to be processed, the information of the processing module, and / or the configuration information, thus avoiding data loss or module damage.
[0027] Furthermore, if the data to be processed, the information of the processing module, and / or the configuration information change, the relevant technical personnel can directly send the updated data to be processed, the information of the processing module, and / or the configuration information to the server through the first terminal device, the second terminal device, or the third terminal device they operate. In this way, the efficiency of updating the data to be processed, the information of the processing module, and / or the configuration information can be improved.
[0028] In this way, the stability and efficiency of collaborative data processing can be improved, as well as the reliability and accuracy of collaborative data processing. Attached Figure Description
[0029] To more clearly illustrate the technical solutions of the embodiments of this application, the accompanying drawings used in the embodiments will be briefly introduced below. It should be understood that the following drawings only show some embodiments of this application and should not be regarded as a limitation of the scope. For those skilled in the art, other related drawings can be obtained based on these drawings without creative effort.
[0030] Figure 1 This is a schematic diagram of the structure of a data collaborative processing system provided in an embodiment of this application;
[0031] Figure 2 A flowchart illustrating the first data collaborative processing method provided in this application embodiment;
[0032] Figure 3 A flowchart illustrating the second data collaborative processing method provided in this application embodiment;
[0033] Figure 4 A flowchart illustrating the third data collaborative processing method provided in this application embodiment;
[0034] Figure 5 A flowchart of the fourth data collaborative processing method provided in the embodiments of this application;
[0035] Figure 6A flowchart illustrating the fifth data collaborative processing method provided in this application embodiment;
[0036] Figure 7 A flowchart of the sixth data collaborative processing method provided in the embodiments of this application;
[0037] Figure 8 A flowchart of the seventh data collaborative processing method provided in the embodiments of this application;
[0038] Figure 9 A flowchart of the eighth data collaborative processing method provided in the embodiments of this application;
[0039] Figure 10 This is a schematic diagram of the structure of a data collaborative processing device provided in an embodiment of this application;
[0040] Figure 11 This is a schematic diagram of the structure of a computer device provided in an embodiment of this application. Detailed Implementation
[0041] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. The components of the embodiments of this application described and shown in the accompanying drawings can generally be arranged and designed in various different configurations.
[0042] Therefore, the following detailed description of the embodiments of this application provided in the accompanying drawings is not intended to limit the scope of the claimed application, but merely to illustrate selected embodiments of the application. All other embodiments obtained by those skilled in the art based on the embodiments of this application without inventive effort are within the scope of protection of this application.
[0043] In related technologies, situations often arise where technical personnel from different departments need to collaborate on data processing. For example, the development department might create multiple functional modules to implement specific operations, the data acquisition department might collect the corresponding data to be processed, and the editing department might input the appropriate parameters for each functional module according to actual needs. These modules would then be packaged into a workflow script, which would be run on the appropriate program to process the data. Finally, the operations and maintenance department would verify the processed data or repair the workflow script. Furthermore, because multiple departments are involved, it is necessary for technical personnel from each department to transfer various data, scripts, or modules to each other to ensure the successful completion of data processing.
[0044] However, in related technical solutions, the need for technical personnel from multiple departments to transfer data, scripts, or modules poses a risk of data loss or module corruption. Furthermore, if data, scripts, or modules change, technical personnel from other departments cannot obtain the updated data, scripts, or modules in a timely manner. Therefore, these technical solutions suffer from poor stability and low efficiency.
[0045] In addition, some special data processing requires the use of specific software, such as Maya and 3DMax. When multiple departments need to collaborate on the data processing, these specific software programs need to be installed on the terminal devices operated by each technician. This leads to high costs and excessive hardware resources for collaborative data processing.
[0046] To this end, this application provides a data collaborative processing method. By acquiring data to be processed sent by at least one first terminal device, acquiring at least one processing module based on information of a processing module sent by at least one second terminal device, acquiring configuration information sent by at least one third terminal device, generating a process instance based on each configuration information and each processing module, executing the process instance, and outputting the execution result data after the execution of the process instance, the method can improve the stability and efficiency of data collaborative processing.
[0047] This application uses a data collaborative processing method applied in a server as an example for illustration. However, it does not imply that this application's embodiments can only be applied to data collaborative processing in servers.
[0048] Figure 1 This is a schematic diagram of the structure of a data collaborative processing system provided in an embodiment of this application. See also... Figure 1 The data collaborative processing system may include server A, at least one first terminal device B, at least one second terminal device C, and at least one third terminal device D.
[0049] Each of the first terminal devices B, the second terminal devices C, and the third terminal devices D can communicate with server A to send corresponding data, files, codes, instructions, etc. to server A, or to receive corresponding data, files, codes, instructions, etc. sent by server A.
[0050] Optionally, server A can be any server with processing, storage, communication and other functions. Any application can be deployed on server A, and various kinds of data or files can be stored on server A. This application embodiment does not limit this.
[0051] Each first terminal device B, each second terminal device C, and each third terminal device D can be operated by technicians from different departments, or by different technicians from the same department.
[0052] Each terminal device can be a computer, smartphone, tablet computer, or other electronic device with communication and processing functions, and this application embodiment does not limit this.
[0053] In addition, each of the first terminal devices B, each of the second terminal devices C, and each of the third terminal devices D can also communicate and connect with each other, and this application embodiment does not limit this.
[0054] In one possible approach, the data collaborative processing system may also include at least one fourth terminal device, and each fourth terminal device may also communicate with server A, each first terminal device B, each second terminal device C and / or each third terminal device D. This application embodiment does not limit this.
[0055] For example, in the embodiments of this application, it is assumed that technical personnel from the development department, the data acquisition department, the editing department, and the operation and maintenance department need to work together to process data collaboratively. In this case, each first terminal device B can be operated by technical personnel from the data acquisition department, each second terminal device C can be operated by technical personnel from the development department, each third terminal device D can be operated by technical personnel from the editing department, and each fourth terminal device can be operated by technical personnel from the operation and maintenance department. This embodiment of the application does not limit this.
[0056] It should be noted that the embodiments provided in this application are as follows: Figure 1 The structure of the data collaborative processing system shown is merely for illustrating the application scenarios of the data collaborative processing method provided in the embodiments of this application, and does not imply that the data collaborative processing method provided in the embodiments of this application can only be applied to scenarios such as... Figure 1 The data collaborative processing system shown in this application is not limited in this respect.
[0057] The data collaborative processing method provided in the embodiments of this application will be explained in detail below.
[0058] Figure 2 The flowchart illustrates a data collaborative processing method provided in this application. This method can be applied to any server, such as server A described above; however, this application does not limit the specific server to this method. See also... Figure 2 This application provides a data collaborative processing method, including:
[0059] Step 1001: Obtain the data to be processed sent by at least one first terminal device.
[0060] Optionally, each first terminal device can be the first terminal device B described above. The number of each first terminal device can be one or more, depending on the number of technicians performing data collaborative processing. Generally, each technician can operate one terminal device, but this embodiment does not limit this.
[0061] Optionally, the data to be processed can be any data that requires collaborative processing by multiple technicians. For example, the data to be processed can be motion data, animation data, skinning data, skeleton data, etc. This application embodiment does not limit this.
[0062] The number of data to be processed can be one or more, which can be set by relevant technical personnel according to actual needs.
[0063] For example, assuming the data to be processed is human motion data, the technicians in the data acquisition department can use corresponding motion tracking equipment, camera equipment and other possible equipment in the motion capture room to record the required human motion data in advance, and then transmit or store the human motion data in each first terminal device. The technicians in the data acquisition department can then send the human motion data to the server by triggering each first terminal device. This application embodiment does not limit this.
[0064] It is worth noting that the server can receive the data to be processed sent by each first terminal device only when data collaborative processing is required, or it can receive the data to be processed in real time. Furthermore, after each first terminal device sends the data to be processed to the server, and the server receives the data, it can store the data to be processed in a corresponding database or disk. Then, when data collaborative processing is required, the server can directly retrieve the data to be processed sent by each first terminal device from the corresponding database or disk.
[0065] It is worth noting that since the number of each first terminal device can be one or more, and the number of pending data sent by each first terminal device can also be one or more, when obtaining pending data sent by at least one first terminal device, it can mean that the server receives one pending data sent by multiple first terminal devices, or it can mean that the server receives multiple pending data sent by multiple first terminal devices, or it can mean that the server receives one or more pending data sent by one first terminal device. This application embodiment does not limit this.
[0066] By acquiring the data to be processed sent by each first terminal device, the server can obtain the data to be processed collected by the technical personnel of the data acquisition department. In this way, the server can obtain the data to be processed that requires collaborative data processing, facilitating the execution of subsequent operations on that data.
[0067] Step 1002: Obtain at least one processing module based on the information sent by at least one second terminal device.
[0068] Optionally, each of the second terminal devices can be the second terminal device C described above. The number of each of the second terminal devices can be one or more.
[0069] Optionally, each processing module can be a virtual module for implementing a specific function or operation. Each processing module can be a string of code, a program segment or function, or a program obtained by encapsulating code. This application embodiment does not limit this.
[0070] Each processing module can be used to execute one or more business operations.
[0071] The business operation can refer to any operation that can be performed on the data to be processed. For example, the business operation can include any possible operation such as modeling, skinning, driving, simulation, adding textures, rendering, and editing.
[0072] The number of processing modules can be one or more. Specifically, information of one processing module can be sent by one second terminal device, or information of multiple processing modules can be sent by one second terminal device. This application embodiment does not limit this.
[0073] For example, the information of the processing module may include the processing module itself; that is, in this case, the generated processing module can be sent directly to the server by each second terminal device.
[0074] Additionally, the information for this processing module may also include information needed to create the module, such as a module declaration file. In other words, in this case, each second terminal device can send the module declaration file needed to create the processing module to the server, and the server can then create the processing module based on the module declaration file.
[0075] For example, the information of the processing module can be written by a technician in at least one development department on a second terminal device they operate, and then the information of the processing module can be sent to the server through the second terminal device. The information of the processing module can also be stored in the second terminal device. This application embodiment does not limit this.
[0076] Furthermore, after receiving the information from the processing module, the server can store the information of the processing module in a corresponding database or disk, and record the second terminal device that sent the information of the processing module.
[0077] It is worth noting that since the number of each second terminal device can be one or more, and the number of information of the processing module sent by each second terminal device can also be one or more, multiple second terminal devices can send information of one processing module to the server, multiple second terminal devices can send information of multiple processing modules to the server, or one second terminal device can send information of one or more processing modules to the server. This application embodiment does not limit this.
[0078] It is worth noting that by obtaining information about the processing modules sent by at least one second terminal device, the server can obtain information about the processing modules and / or processing modules written by the technical personnel in the development department.
[0079] In this way, by obtaining the processing modules based on the information sent by each second terminal device, the purpose of obtaining the processing modules used to perform specific business operations can be achieved, which facilitates the subsequent processing of the data to be processed according to each processing module.
[0080] Step 1003: Obtain configuration information sent by at least one third terminal device.
[0081] Optionally, each third terminal device can be the aforementioned third terminal device D, and the number of each third terminal device can be one or more.
[0082] In addition, each third terminal device can be a terminal device operated by technical personnel in the editorial department, and this application embodiment does not limit this.
[0083] Optionally, the configuration information can be used to indicate the association information between the processing module and the data to be processed, between the processing module and other processing modules, and the execution parameters of the processing module.
[0084] This configuration information can also be used to indicate which processing modules should perform which business operations on which data to be processed.
[0085] The configuration information can be entered into the third terminal device by the technical staff of the editorial department, and can also be sent to the server by operating the third terminal device.
[0086] Specifically, the technical staff of the editing department can input information such as the type, format, and size of the data to be processed, as well as the actual business operations to be performed on the data to be processed, into the third terminal device. The third terminal device then generates the configuration information based on the information and business operations input by the technical staff of the editing department. This application embodiment does not limit this aspect.
[0087] Specifically, the association information may include the association between the processing module and the data to be processed, or the association between the processing module and other processing modules.
[0088] The relationship between this processing module and other processing modules can indicate the order in which each processing module is executed.
[0089] In addition, the relationship between this processing module and other processing modules can specifically indicate whether the input of this processing module is the output of other processing modules, whether the output of this processing module is the input of other processing modules, which other processing module's output is the input of this processing module, and which other processing module's input is the output of this processing module.
[0090] Optionally, the execution parameters of the processing module can be used to indicate parameters such as the number of times the processing module performs business operations, the start time of execution, and the storage path of the data to be processed that the processing module needs to obtain when performing business operations. This application embodiment does not limit these parameters.
[0091] It is worth noting that by obtaining the configuration information sent by each third-party terminal device, the server can obtain the configuration information entered by the technical staff in the editorial department.
[0092] It is worth noting that since this configuration information can be used to indicate the association information between the processing module and the data to be processed, between the processing module and other processing modules, and the execution parameters of the processing module, after obtaining this configuration information, the server can determine which processing modules need to be called to perform what business operations on which data to be output, which facilitates the execution of subsequent operations.
[0093] Step 1004: Generate a process instance based on each configuration information and each processing module.
[0094] Optionally, the process instance is used to indicate the data to be processed that needs to be invoked and the business operations that the processing module needs to perform on the data to be processed.
[0095] In addition, this process instance can also be used to indicate which processing modules need to be invoked, and the order in which each processing module is executed.
[0096] Optionally, the process instance can be a script, program, or code to be executed, and this application embodiment does not limit this.
[0097] It is worth noting that since this process instance is generated based on the configuration information and processing modules, it can be used to indicate the data to be processed, the processing module to be called, and the business operations that the processing module needs to perform on the data to be processed. In this way, the server can accurately determine the processing required for each piece of data to be processed, thereby improving the reliability and accuracy of data collaborative processing.
[0098] Step 1005: Execute the process instance and output the execution result data after the process instance is executed.
[0099] Optionally, the execution result data may refer to the data obtained after processing each piece of data to be processed. The execution result data may be data in any possible form, and this application embodiment does not limit it.
[0100] It's worth noting that executing this process instance can refer to executing each processing module sequentially, in that order, and calling the data to be processed that is related to each module during execution, so that each module can perform corresponding business operations on the data. Furthermore, since the processing modules are also interconnected, the output of other processing modules can be used as the input of any given module during execution, and the output of any given module can be used as the input of other processing modules after execution. This allows for accurate and reliable data processing.
[0101] In this embodiment of the application, by obtaining the data to be processed sent by at least one first terminal device, obtaining at least one processing module based on the information of the processing module sent by at least one second terminal device, obtaining the configuration information sent by at least one third terminal device, generating a process instance based on each configuration information and each processing module, executing the process instance, and outputting the execution result data after the execution of the process instance.
[0102] Since the data to be processed, the information of the processing module, and the configuration information can be collected, written, and input by technicians from different departments operating different terminal devices, the server can obtain the data to be processed sent by at least one first terminal device, obtain at least one processing module based on the information of the processing module sent by at least one second terminal device, and obtain the configuration information sent by at least one third terminal device. This allows the server to obtain the data to be processed, the information of the processing module, and the configuration information sent by technicians from different departments or by different technicians. Furthermore, the server can determine which processing modules need to be called to perform what business operations on which output data, thereby achieving the goal of collaborative data processing among multiple departments.
[0103] Based on the configuration information and processing modules, a process instance is generated. Since the process instance is generated according to the configuration information and processing modules, it is used to indicate the data to be processed, the processing module to be called, and the business operation that the processing module needs to perform on the data to be processed. In this way, the server can accurately determine the processing required for each data to be processed, thereby improving the reliability and accuracy of data collaborative processing.
[0104] This process instance is executed, and the execution result data is output. Executing this process instance can refer to executing each processing module sequentially, and calling the data to be processed that is related to each processing module during execution, so that each processing module can perform corresponding business operations on the data to be processed. Furthermore, since the processing modules are also related, the output of other processing modules can be used as the input of any processing module during execution, and the output of any processing module can be used as the input of other processing modules after execution. In this way, the goal of accurate and reliable data processing can be achieved.
[0105] Because the server can directly obtain the data to be processed, the information of the processing module, and the configuration information collected, written, and input by technical personnel from multiple departments or multiple technical personnel through each first terminal device, each second terminal device, and each third terminal device, in other words, technical personnel from multiple departments or multiple technical personnel only need to send the data, information, or modules they are responsible for to the server, and the server can then perform collaborative processing of the data to be processed. This eliminates the need for technical personnel to exchange the data to be processed, the information of the processing module, and / or the configuration information, thus avoiding data loss or module damage.
[0106] Furthermore, if the data to be processed, the information of the processing module, and / or the configuration information change, the relevant technical personnel can directly send the updated data to be processed, the information of the processing module, and / or the configuration information to the server through the first terminal device, the second terminal device, or the third terminal device they operate. In this way, the efficiency of updating the data to be processed, the information of the processing module, and / or the configuration information can be improved.
[0107] In this way, the stability and efficiency of collaborative data processing can be improved, as well as the reliability and accuracy of collaborative data processing.
[0108] It should be noted that, in one possible approach, when executing steps 1001, 1002, and / or 1003, the data to be processed, the information of the processing module, and / or the configuration information may all be sent to the server by the same technician through their operating terminal device. In this case, the first terminal device, the second terminal device, and / or the third terminal device can be the same terminal device. That is, the data to be processed, the information of the processing module, and / or the configuration information can be sent to the server through the same terminal device, and the server can continue to execute steps 1004 and 1005 to achieve the purpose of processing the data to be processed and obtaining the execution result data.
[0109] In one possible implementation, see [link to relevant documentation]. Figure 3 Based on information from a processing module sent by at least one second terminal device, at least one processing module is obtained, including:
[0110] Step 1006: Obtain the module declaration file sent by the second terminal device.
[0111] Optionally, the module declaration file can be used to indicate the attribute information of the processing modules that need to be created.
[0112] This attribute information includes: module functions, interface protocols, control commands, and resource requirements.
[0113] Specifically, the module function can indicate the business operations that the processing module can perform.
[0114] This interface protocol can indicate the communication methods and requirements between the interfaces through which the processing module exchanges data.
[0115] This control command can indicate which processes need to be invoked when executing the processing module.
[0116] This resource requirement can indicate the hardware resources that need to be allocated to the processing module, such as the central processing unit (CPU) resources, memory resources, and graphics processing unit (GPU) resources that need to be allocated to the processing module.
[0117] Step 1007: Create the processing module based on the module declaration file.
[0118] It is worth noting that in this case, the module declaration file can be the information of the processing module sent by the second terminal device. In this way, the server can obtain the processing module with module functions, interface protocols, control commands, and resource requirements based on the module declaration files written by the technical personnel of the development department sent by each second terminal device. This facilitates the subsequent generation of process instances based on each processing module and the above configuration information, and the execution of the process instances to process the data to be processed.
[0119] In one possible implementation, see [link to relevant documentation]. Figure 4 The processing module is created based on the module declaration file, including:
[0120] Step 1008: Determine whether the module declaration file meets the preset creation conditions.
[0121] Optionally, the preset creation conditions can be set by relevant technical personnel according to actual needs.
[0122] For example, the preset creation conditions may conform to a matching file defined and written by relevant technical personnel. The matching file may include some preset attribute information and / or preset attribute information format. The matching file may be a .gitlab-ci.yml file.
[0123] For example, the matching file can be executed to check whether the attribute information of the module declaration file matches the preset attribute information and / or the preset attribute information format. If they match, it can be determined that the module declaration file meets the preset creation conditions; otherwise, it can be determined that the module declaration file does not meet the preset creation conditions.
[0124] Step 1009: If satisfied, then according to the attribute information of the processing module indicated by the module declaration file, read the program fragment required by the processing module from the preset program library, and splice the program fragment to obtain the processing module.
[0125] Optionally, the preset program library can store multiple program fragments.
[0126] For example, the preset library can be a git repository, and the program snippet can be a string of code stored in the git repository.
[0127] For example, in this case, reading the program fragments required by the processing module from a pre-defined library, and then concatenating and processing these fragments to obtain the operations of the processing module can be achieved through a git hooks plugin. Generally, git hooks plugins can be used to add custom dynamic tasks before or after an event occurs. They are often used to automate workflows such as testing, integration, and building.
[0128] Step 1010: If not satisfied, send the content of the file in the module declaration file that does not meet the preset creation conditions to the corresponding second terminal device.
[0129] Optionally, the corresponding second terminal device may refer to the second terminal device that sends the module declaration file or other second terminal devices that are associated with the second terminal device that sends the module declaration file. This application embodiment does not limit this.
[0130] For example, the file content in the module declaration file that does not meet the preset creation conditions can specifically refer to attribute information in the module declaration file that does not match the preset attribute information and / or the format of the preset attribute information. For example, the attribute information includes module functions, interface protocols, control commands, and resource requirements. If the interface protocol indicated by the module declaration file is different from the interface protocol in the preset attribute information, then it can be determined that the interface protocol indicated by the module declaration file is the file content in the module declaration file that does not meet the preset creation conditions.
[0131] Optionally, the content of files in the module declaration file that do not meet the preset creation conditions can be sent to the corresponding second terminal device in various forms such as text, images, and sound.
[0132] This improves the flexibility of accessing the processing module, and if the module's declaration file does not meet the preset creation conditions, it can promptly notify relevant technical personnel to take appropriate action, thus improving the efficiency of collaborative data processing.
[0133] In one possible implementation, see [link to relevant documentation]. Figure 5 Based on this configuration information and each processing module, a process instance is generated, including:
[0134] Step 1011: Parse the configuration information to determine the processing module, the association information between the processing module and the data to be processed, the association information between the processing module and other processing modules, and the execution parameters of the processing module.
[0135] In this way, the server can accurately determine which processing modules need to perform which business operations on which data to be processed, the order in which each processing module is executed, the input and output relationships between each processing module, the number of times each processing module performs business operations, the start time of execution, and the storage path of the data to be processed that the processing module needs to obtain when performing business operations, so as to facilitate the generation of the process instance.
[0136] Step 1012: Generate the process instance based on each processing module, the association information between the processing module and the data to be processed, the association information between the processing module and other processing modules, and the execution parameters of the processing module.
[0137] It is worth noting that the process instance can be generated based on the data to be processed that needs to be called, the business operations that the processing module needs to perform on the data to be processed, the processing modules to be called, and the order in which the processing modules are executed. In this way, the server can accurately determine the processing required for each piece of data to be processed, thereby improving the reliability and accuracy of data collaborative processing.
[0138] In one possible implementation, see [link to relevant documentation]. Figure 6 Based on each processing module, the association information between the processing module and the data to be processed, the association information between the processing module and other processing modules, and the execution parameters of the processing module, including:
[0139] Step 1013: Call the processing module and write the execution parameters of the processing module into the processing module.
[0140] Optionally, the processing module to be invoked can be determined from the processing modules sent by each second terminal device based on the association information between the processing module and the data to be processed.
[0141] In other words, the processing module to be called can be determined based on information such as the type and format of the data to be processed.
[0142] Specifically, parameters such as the number of times each processing module needs to perform business operations, the start time of execution, and the storage path of the data to be processed that the processing module needs to obtain when performing business operations can be written into the processing module.
[0143] Step 1014: Based on the association information between this processing module and other processing modules, establish a processing module node tree.
[0144] Optionally, the node tree of this processing module includes multiple nodes.
[0145] Each node represents a processing module.
[0146] It is worth noting that, since the relationship between this processing module and other processing modules can specifically indicate whether the input of this processing module is the output of other processing modules, whether the output of this processing module is the input of other processing modules, and which other processing module's output is the input of this processing module, the processing module node tree can be built according to the input and output relationships between each processing module.
[0147] In addition, the node tree of this processing module can include a start node and an end node.
[0148] The start node and the end node do not represent any processing module. The start node is used to indicate the start of execution of the processing module node tree or the process instance, and the end node is used to indicate the end of execution of the processing module node tree or the process instance.
[0149] Step 1015: Based on the association information between the processing module and the data to be processed, add node data to the node tree of the processing module.
[0150] Optionally, the node data is used to indicate the association information between the processing module and the data to be processed.
[0151] In other words, the node data can specifically indicate the data to be processed that the processing module needs to access when it is executed.
[0152] Step 1016: Generate a process instance based on the position and data of each node in the node tree of this processing module.
[0153] Optionally, the position of each node can be used to characterize the execution order of each processing module in the processing module node tree, as well as the relationship between the input and output of each processing module.
[0154] In this way, the server can generate the process instance, and then the server can accurately determine the processing required for each piece of data to be processed, thereby improving the reliability and accuracy of data collaborative processing.
[0155] In one possible implementation, see [link to relevant documentation]. Figure 7 Execute this process instance and output the execution result data after the process instance is executed, including:
[0156] Step 1017: Execute the process instance through the target program in the virtual container to obtain the execution result data after the process instance is executed.
[0157] Alternatively, the virtual container can be a container that deploys a Linux operating system or any other operating system. The virtual container is isolated, which can improve the security of the target program running in the virtual container.
[0158] The target program consists of a main loop process and multiple child processes.
[0159] The main loop process is used to call and control each child process.
[0160] The target program can be software such as Maya or 3D Max.
[0161] It is worth noting that since the target program may be in a dormant or suspended state when the process instance is not executed, it is necessary to wake up or initialize the target program when the process instance is started. This is especially true for software with long initialization times, such as Maya and 3D Max, which will result in a significant waste of time and affect the efficiency of data collaborative processing.
[0162] Therefore, the main loop process can remain running to ensure that the target program remains in a woke-up or initialized state, thus improving the efficiency of data collaborative processing.
[0163] Step 1018: Store the execution result data of the process instance in the database and output the execution result data of the process instance.
[0164] Alternatively, the database can be a dedicated database set up on the server to store execution result data, thus ensuring that the execution result data is isolated from other data.
[0165] It is worth noting that when outputting the execution result data, the execution result data can be output to each of the first terminal devices, the second terminal devices, and the third terminal devices, or it can be output to any one of the first terminal devices, the second terminal devices, and the third terminal devices, or it can be output to the fourth terminal device. This application embodiment does not limit this.
[0166] It's worth noting that by storing the execution result data in a database, this data can be backed up. This not only ensures accurate and reliable data processing but also improves the security of the stored execution result data and the flexibility of its output.
[0167] In one possible implementation, see [link to relevant documentation]. Figure 8The process instance is executed through the target program in the virtual container to obtain the execution result data of the process instance, including:
[0168] Step 1019: Receive and parse the process instance through the main loop process to obtain each processing module in the process instance, as well as the data to be processed associated with each processing module and other processing modules.
[0169] It is worth noting that since the main loop process is used to call and control each child process, and the main loop process can continuously maintain its running state, receiving and parsing the process instance by the main loop process can ensure that each child process in the target program can correctly and quickly execute each processing module. In this way, the accuracy and efficiency of data collaborative processing can be improved.
[0170] Step 1020: The main loop process controls each subprocess to execute each processing module in order to process the data to be processed associated with that processing module.
[0171] Specifically, the main loop process can control a child process to execute a processing module, and each child process can call the data to be processed associated with the processing module to process the data accurately.
[0172] Step 1021: Obtain the processing data output by each subprocess, and according to the association information between each processing module and other processing modules, send each processing data to other subprocesses or use each processing data as the execution result data.
[0173] Optionally, the processing data output by each subprocess can refer to the data obtained after the processing module executed in each subprocess processes the corresponding data. The processing data output by each subprocess is the output of each processing module.
[0174] It is worth noting that, since there is a certain order and input-output relationship between the processing modules, if the processing module executed in a subprocess is the last node in the node tree of that processing module, then the processing data output by this subprocess can be used as the execution result data.
[0175] If a processing module executed in a subprocess is the last node in the node tree of that processing module, and the output of the processing module executed in this subprocess needs to be used as the input of other processing modules, then the processing data output by this subprocess can be used as the input of other processing modules and the processing data output by this subprocess can be output to the corresponding subprocess.
[0176] This ensures that each subprocess can correctly execute its respective processing module, thereby ensuring that the server can correctly process data.
[0177] In one possible implementation, the method further includes:
[0178] Real-time monitoring of the resource information of the main loop process and each child process.
[0179] Optionally, the resource information includes the CPU resources, memory resources, and GPU resources used.
[0180] This resource information can be displayed as a percentage. Specifically, it can be the ratio of CPU, memory, or GPU resources used by the main loop process and its child processes to those allocated to the main loop process and its child processes.
[0181] For example, if the server allocates 4GB of memory resources to the main loop process, and the main loop process currently occupies 3GB of memory resources, then this resource information can indicate that the main loop process is using 75% of the memory resources.
[0182] It is worth noting that since the main loop process and each child process are processes within the target program, the resource information of the target program can be determined by detecting the resource information of the main loop process and each child process. Since the target program runs in the virtual container, the resources occupied by the virtual container can be determined.
[0183] Resources are allocated in real time to the main loop process, each child process, and / or the virtual container based on the resource information.
[0184] Optionally, the resource allocation operation can be to adjust the CPU resources, memory resources, and GPU resources allocated to the server.
[0185] If the CPU resources, memory resources and / or GPU resources occupied by the main loop process, each child process and / or the virtual container exceed the preset resource threshold, a preset resource value can be allocated to the main loop process, each child process and / or the virtual container.
[0186] For example, assuming the resource information of the main loop process indicates that the main loop process is currently occupying 95% of the memory resources, and the preset resource threshold is 90%, and the preset resource value is 1GB, then 1GB of memory resources can be allocated to the main loop process. If the memory resources currently occupied by the main loop process are still greater than the preset resource threshold after allocation, then 1GB of memory resources will continue to be allocated to the main loop process until the memory resources currently occupied by the main loop process are less than or equal to the preset resource threshold.
[0187] This avoids the main loop process, each child process, and / or the virtual container from consuming too many resources, which could cause the main loop process, each child process, the target program, and / or the virtual container to crash or stop, thereby improving the stability of data collaborative processing.
[0188] In one possible implementation, the method further includes:
[0189] Monitor the execution status of the main loop process and each child process in real time.
[0190] The execution status includes whether the execution has ended, failed, or is in progress.
[0191] It is worth noting that since each processing module executes in its own subprocess, this execution status can indicate the execution status of each processing module or node.
[0192] Progress information is generated and output in real time based on the execution status.
[0193] Optionally, the progress information can be used to indicate which node the process instance has reached, or which processing module it has reached, or to indicate the execution status of each processing module in the process instance.
[0194] This allows technical personnel to easily monitor the current progress of data processing on the server.
[0195] One possible approach, in the event of execution failure, is for the server to copy the position, order, and data of the currently executing node, and then recreate a new node based on these parameters, attempting to re-execute the new node. Alternatively, it could copy the attribute information corresponding to the currently executing processing module, generate a new processing module based on this information, and then re-execute the new processing module in a new subprocess.
[0196] Then, if the new node or new processing module fails to execute, fault information is generated and output to the corresponding terminal device to inform the relevant technical personnel to troubleshoot.
[0197] In one possible approach, if the execution fails, the server can generate fault information and output it to the corresponding terminal device.
[0198] This way, relevant technical personnel can be notified in a timely manner to troubleshoot the problem.
[0199] Since this configuration information can also be used to indicate whether each processing module needs to be verified when executing the process instance, this application embodiment also provides a possible implementation. Executing the process instance and outputting the execution result data after the process instance execution further includes:
[0200] When the processing module that needs to be verified in this process instance is completed, the verification result of the processing module is generated and output.
[0201] In one possible implementation, see [link to relevant documentation]. Figure 9 Before acquiring the data to be processed sent by at least one first terminal device, the method further includes:
[0202] Step 1022: Generate the image file of the target program.
[0203] Alternatively, an image file of the target program can be generated using Docker image technology.
[0204] This image file can be used to install the target program on this server.
[0205] Step 1023: Deploy the target program to a virtual container based on the image file, and generate the main loop process and multiple child processes of the target program in the virtual container.
[0206] In this way, the target program can be deployed in the virtual container of the server, making it convenient to use the target program to execute the process instance to process the data to be processed.
[0207] Step 1024: Start the main loop process.
[0208] Since the main loop process can remain running continuously, ensuring that the target program remains in a woken-up or initialized state, the efficiency of subsequent data collaborative processing can be improved.
[0209] In one possible implementation, the target program is deployed to a virtual container based on the image file, and a main loop process and multiple child processes of the target program are generated in the virtual container, including:
[0210] Based on this image file, the target program is deployed to multiple different virtual containers.
[0211] This allows the target program to be deployed in multiple virtual containers.
[0212] In each virtual container, a main loop process and a child process of the target program are generated respectively.
[0213] It is worth noting that the process instance can be received and parsed by each main loop process. In this case, the main loop processes can also communicate with each other, and each main loop process corresponds to a unique tag. This tag can be the sequence number of each main loop process, or it can be used to indicate the order of processing modules, related information or the position and data of nodes obtained by each main loop process after parsing the process instance.
[0214] In other words, each main loop process only needs to obtain one processing module and configure this processing module into a child process in the same virtual container as each main loop process. Furthermore, each main loop process can also mark the processing data output by the child process to be sent to other main loop processes as input to other child processes.
[0215] Since each child process resides in a different virtual container, and these virtual containers are isolated, isolation between the child processes can be achieved. This means that even if one child process consumes more resources, it will not affect the processing efficiency of other child processes. Thus, the security and efficiency of collaborative data processing can be improved.
[0216] The following describes the apparatus, equipment, and computer-readable storage medium used to implement the data collaborative processing method provided in this application. The specific implementation process and technical effects are described above and will not be repeated here.
[0217] Figure 10 This is a schematic diagram of the structure of a data collaborative processing device provided in an embodiment of this application. See also... Figure 10 The device includes:
[0218] The first acquisition module 201 is used to acquire data to be processed sent by at least one first terminal device.
[0219] The second acquisition module 202 is used to acquire at least one processing module based on information from the processing module sent by at least one second terminal device.
[0220] Optionally, each processing module is used to perform one or more business operations;
[0221] The third acquisition module 203 is used to acquire configuration information sent by at least one third terminal device.
[0222] Optionally, the configuration information is used to indicate the association information between the processing module and the data to be processed, between the processing module and other processing modules, and the execution parameters of the processing module.
[0223] The generation module 204 is used to generate process instances based on the configuration information and the processing modules.
[0224] Optionally, the process instance is used to indicate the data to be processed that needs to be invoked and the business operations that the processing module needs to perform on the data to be processed.
[0225] The execution output module 205 is used to execute the process instance and output the execution result data after the process instance is executed.
[0226] Optionally, the second acquisition module 202 can also be used to acquire the module declaration file sent by the second terminal device and create the processing module based on the module declaration file.
[0227] The second acquisition module 202 can also be used to determine whether the module declaration file meets the preset creation conditions. If it does, the module reads the program fragments required by the processing module from the preset program library according to the attribute information of the processing module indicated by the module declaration file, and splices the program fragments to obtain the processing module. If it does not meet the preset creation conditions, the module declaration file content that does not meet the preset creation conditions is sent to the corresponding second terminal device.
[0228] The generation module 204 can also be used to parse the configuration information, determine the processing module, the association information between the processing module and the data to be processed, the association information between the processing module and other processing modules, and the execution parameters of the processing module, and generate the process instance based on each processing module, the association information between the processing module and the data to be processed, the association information between the processing module and other processing modules, and the execution parameters of the processing module.
[0229] The generation module 204 can also be used to call the processing module and write the execution parameters of the processing module into the processing module. Based on the association information between the processing module and other processing modules, a processing module node tree is established. Based on the association information between the processing module and the data to be processed, node data is added to the processing module node tree. The process instance is generated according to the position of each node in the processing module node tree and the node data.
[0230] The execution output module 205 can also be used to execute the process instance through the target program in the virtual container, obtain the execution result data after the process instance is executed, store the execution result data after the process instance is executed in the database, and output the execution result data after the process instance is executed.
[0231] The execution output module 205 can also be used to receive and parse the process instance through the main loop process, obtain each processing module in the process instance, as well as the data to be processed associated with each processing module and other processing modules. The main loop process controls each sub-process to execute each processing module to process the data to be processed associated with the processing module, obtain the processing data output by each sub-process, and send each processing data to other sub-processes or use each processing data as the execution result data according to the association information between each processing module and other processing modules.
[0232] The first acquisition module 101 can also be used to monitor the resource information of the main loop process and each child process in real time.
[0233] The execution output module 205 can also be used to allocate resources to the main loop process, each child process, and / or the virtual container in real time based on the resource information.
[0234] The first acquisition module 101 can also be used to monitor the execution status of the main loop process and each child process in real time.
[0235] The execution output module 205 can also be used to generate and output progress information in real time based on the execution status.
[0236] The generation module 204 can also be used to generate an image file of the target program, deploy the target program to a virtual container based on the image file, generate the main loop process and multiple child processes of the target program in the virtual container, and start the main loop process.
[0237] The generation module 204 can also be used to deploy the target program to multiple different virtual containers based on the image file, and generate a main loop process and a child process of the target program in each virtual container.
[0238] The above-described device is used to execute the method provided in the foregoing embodiments, and its implementation principle and technical effect are similar, so they will not be described again here.
[0239] These modules can be one or more integrated circuits configured to implement the above methods, such as one or more Application Specific Integrated Circuits (ASICs), one or more microprocessors, or one or more Field Programmable Gate Arrays (FPGAs). Alternatively, when a module is implemented using processing element scheduler code, the processing element can be a general-purpose processor, such as a Central Processing Unit (CPU) or other processor capable of calling program code. Furthermore, these modules can be integrated together as a system-on-a-chip (SOC).
[0240] Figure 11 This is a schematic diagram of the structure of a computer device provided in an embodiment of this application. See also... Figure 11 The computer device includes a memory 301 and a processor 302. The memory 301 stores a computer program that can run on the processor 302. When the processor 302 executes the computer program, it implements the steps in any of the above method embodiments.
[0241] The processor 302 is used to acquire data to be processed sent by at least one first terminal device.
[0242] The processor 302 is used to acquire at least one processing module based on information from the processing module sent by at least one second terminal device.
[0243] The processor 302 is used to acquire configuration information sent by at least one third terminal device.
[0244] Processor 302 is used to generate process instances based on configuration information and processing modules.
[0245] The processor 302 is used to execute the process instance and output the execution result data after the process instance is executed.
[0246] Optionally, the processor 302 can also be used to obtain the module declaration file sent by the second terminal device and create the processing module based on the module declaration file.
[0247] The processor 302 can also be used to determine whether the module declaration file meets the preset creation conditions. If it does, it reads the program fragments required by the processing module from the preset program library according to the attribute information of the processing module indicated by the module declaration file, and splices the program fragments to obtain the processing module. If it does not meet the preset creation conditions, it sends the file content of the module declaration file that does not meet the preset creation conditions to the corresponding second terminal device.
[0248] The processor 302 can also be used to parse the configuration information, determine the processing module, the association information between the processing module and the data to be processed, the association information between the processing module and other processing modules, and the execution parameters of the processing module, and generate the process instance based on each processing module, the association information between the processing module and the data to be processed, the association information between the processing module and other processing modules, and the execution parameters of the processing module.
[0249] The processor 302 can also be used to call the processing module and write the execution parameters of the processing module into the processing module. Based on the association information between the processing module and other processing modules, a processing module node tree is established. Based on the association information between the processing module and the data to be processed, node data is added to the processing module node tree. The process instance is generated according to the position of each node in the processing module node tree and the node data.
[0250] The processor 302 can also be used to execute the process instance through the target program in the virtual container, obtain the execution result data after the process instance is executed, store the execution result data after the process instance is executed in the database, and output the execution result data after the process instance is executed.
[0251] The processor 302 can also be used to receive and parse the process instance through the main loop process to obtain each processing module in the process instance, as well as the data to be processed associated with each processing module and other processing modules. The main loop process can control each sub-process to execute each processing module to process the data to be processed associated with the processing module, obtain the processing data output by each sub-process, and send each processing data to other sub-processes or use each processing data as the execution result data according to the association information between each processing module and other processing modules.
[0252] Processor 302 can also be used to monitor the resource information of the main loop process and each child process in real time.
[0253] Processor 302 can also be used to allocate resources to the main loop process, each child process, and / or the virtual container in real time based on the resource information.
[0254] The processor 302 can also be used to monitor the execution status of the main loop process and each child process in real time.
[0255] The processor 302 can also be used to generate and output progress information in real time based on the execution status.
[0256] The processor 302 can also be used to generate an image file of the target program, deploy the target program to a virtual container based on the image file, generate the main loop process and multiple child processes of the target program in the virtual container, and start the main loop process.
[0257] The processor 302 can also be used to deploy the target program to multiple different virtual containers based on the image file, and generate a main loop process and a child process of the target program in each virtual container.
[0258] This application also provides a computer-readable storage medium storing a computer program that, when executed by a processor, can implement the steps in the various method embodiments described above.
[0259] The processor is used to acquire data to be processed sent by at least one first terminal device.
[0260] The processor is used to acquire at least one processing module based on information from a processing module sent by at least one second terminal device.
[0261] The processor is used to acquire configuration information sent by at least one third terminal device.
[0262] This processor is used to generate process instances based on configuration information and processing modules.
[0263] This processor is used to execute the process instance and output the execution result data after the process instance is executed.
[0264] Optionally, the processor can also be used to obtain a module declaration file sent by the second terminal device and create the processing module based on the module declaration file.
[0265] The processor can also be used to determine whether the module declaration file meets the preset creation conditions. If it does, it reads the program fragments required by the processing module from the preset program library according to the attribute information of the processing module indicated by the module declaration file, and splices the program fragments to obtain the processing module. If it does not meet the preset creation conditions, it sends the file content in the module declaration file that does not meet the preset creation conditions to the corresponding second terminal device.
[0266] The processor can also be used to parse the configuration information, determine the processing module, the association information between the processing module and the data to be processed, the association information between the processing module and other processing modules, and the execution parameters of the processing module, and generate the process instance based on each processing module, the association information between the processing module and the data to be processed, the association information between the processing module and other processing modules, and the execution parameters of the processing module.
[0267] The processor can also be used to call the processing module, write the execution parameters of the processing module into the processing module, establish a processing module node tree based on the association information between the processing module and other processing modules, add node data in the processing module node tree based on the association information between the processing module and the data to be processed, and generate the process instance according to the position of each node in the processing module node tree and the node data.
[0268] The processor can also be used to execute the process instance through the target program in the virtual container, obtain the execution result data after the process instance is executed, store the execution result data after the process instance is executed in the database, and output the execution result data after the process instance is executed.
[0269] The processor can also be used to receive and parse the process instance through the main loop process to obtain each processing module in the process instance, as well as the data to be processed associated with each processing module and other processing modules. The main loop process controls each subprocess to execute each processing module to process the data to be processed associated with the processing module, obtain the processing data output by each subprocess, and send each processing data to other subprocesses or use each processing data as the execution result data according to the association information between each processing module and other processing modules.
[0270] The processor can also be used to monitor the resource information of the main loop process and each child process in real time.
[0271] The processor can also be used to allocate resources to the main loop process, each child process, and / or the virtual container in real time based on the resource information.
[0272] The processor can also be used to monitor the execution status of the main loop process and each child process in real time.
[0273] The processor can also be used to generate and output progress information in real time based on the execution status.
[0274] The processor can also be used to generate an image file of the target program, deploy the target program to a virtual container based on the image file, generate the main loop process and multiple child processes of the target program in the virtual container, and start the main loop process.
[0275] The processor can also be used to deploy the target program to multiple different virtual containers based on the image file, and generate a main loop process and a child process of the target program in each virtual container.
[0276] Optionally, this application also provides a program product, such as a computer-readable storage medium, including a program that, when executed by a processor, is used to perform any of the above-described data collaborative processing method embodiments.
[0277] In the several embodiments provided by this invention, it should be understood that the disclosed apparatus and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.
[0278] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0279] Furthermore, the functional units in the various embodiments of the present invention can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or in the form of hardware plus software functional units.
[0280] The integrated units implemented as software functional units described above can be stored in a computer-readable storage medium. These software functional units, stored in a storage medium, include several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) or processor to execute partial steps of the methods of the various embodiments of the present invention. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0281] The above are merely specific embodiments of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
[0282] The above description is merely a preferred embodiment of this application and is not intended to limit this application. Various modifications and variations can be made to this application by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the protection scope of this application.
Claims
1. A method of data syndication processing, the method comprising: Applied to a server, the method includes: Acquire at least one piece of data to be processed sent by a first terminal device; Based on information from a processing module sent by at least one second terminal device, at least one processing module is obtained, wherein each processing module is used to perform one or more business operations. The system obtains configuration information sent by at least one third terminal device, the configuration information being used to indicate the association information between the processing module and the data to be processed, between the processing module and other processing modules, and the execution parameters of the processing module; A process instance is generated based on the configuration information and the processing module. The process instance is used to indicate the data to be processed that needs to be called and the business operations that the processing module needs to perform on the data to be processed. Execute the process instance and output the execution result data after the process instance is executed; The step of obtaining at least one processing module based on information sent by at least one second terminal device includes: Obtain the module declaration file sent by the second terminal device. The module declaration file is used to indicate the attribute information of the processing module to be created. The attribute information includes: module function, interface protocol, control command, and resource requirements. The processing module is created based on the module declaration file.
2. The data syndication method of claim 1, wherein, Creating the processing module based on the module declaration file includes: Determine whether the module declaration file meets the preset creation conditions; If the conditions are met, then according to the attribute information of the processing module indicated by the module declaration file, the program fragments required by the processing module are read from the preset program library, and the program fragments are spliced together to obtain the processing module. If the conditions are not met, the content of the file in the module declaration file that does not meet the creation conditions will be sent to the corresponding second terminal device.
3. The data collaborative processing method as described in claim 1, characterized in that, The process instance generated based on the configuration information and each of the processing modules includes: The configuration information is parsed to determine the processing module, the association information between the processing module and the data to be processed, the association information between the processing module and other processing modules, and the execution parameters of the processing module; The process instance is generated based on each of the processing modules, the association information between the processing modules and the data to be processed, the association information between the processing modules and other processing modules, and the execution parameters of the processing modules.
4. The data collaborative processing method as described in claim 3, characterized in that, The step of basing decisions on each of the processing modules, the association information between the processing module and the data to be processed, the association information between the processing module and other processing modules, and the execution parameters of the processing module includes: The processing module is invoked, and its execution parameters are written into the processing module. Based on the association information between the processing module and other processing modules, a processing module node tree is established. The processing module node tree includes multiple nodes, and each node represents a processing module. Based on the association information between the processing module and the data to be processed, node data is added to the node tree of the processing module. The node data is used to indicate the association information between the processing module and the data to be processed. The process instance is generated based on the position and data of each node in the node tree of the processing module.
5. The data collaborative processing method as described in claim 1, characterized in that, The execution of the process instance and the output of the execution result data after the process instance is executed include: The process instance is executed by the target program in the virtual container to obtain the execution result data after the process instance is executed. The target program includes a main loop process and multiple sub-processes. The main loop process is used to call and control each of the sub-processes. The execution result data of the process instance is stored in the database and then output.
6. The data collaborative processing method as described in claim 5, characterized in that, The step of executing the process instance through the target program in the virtual container to obtain the execution result data after the process instance is executed includes: The main loop process receives and parses the process instance to obtain each processing module in the process instance, as well as the data to be processed associated with each processing module and other processing modules. The main loop process controls each of the sub-processes to execute each of the processing modules in order to process the data to be processed associated with the processing modules; The processing data output by each of the subprocesses is obtained, and based on the association information between each processing module and other processing modules, the processing data is sent to other subprocesses or used as the execution result data.
7. The data collaborative processing method as described in claim 6, characterized in that, The method further includes: Real-time monitoring of the resource information of the main loop process and each of the child processes, including the CPU resources, memory resources, and graphics processor resources used; Resources are allocated in real time to the main loop process, each of the child processes, and / or the virtual container based on the resource information.
8. The data collaborative processing method as described in claim 6, characterized in that, The method further includes: The execution status of the main loop process and each of the child processes is monitored in real time, including execution completion, execution failure, and execution in progress. Progress information is generated and output in real time based on the execution status.
9. The data collaborative processing method according to any one of claims 1-8, characterized in that, The configuration information is also used to indicate whether each of the processing modules needs to be verified when the process instance is executed; The step of executing the process instance and outputting the execution result data after the process instance is executed also includes: When the processing module that needs to be verified in the process instance is completed, the verification result of the processing module is generated and output.
10. The data collaborative processing method according to any one of claims 1-8, characterized in that, Before acquiring the data to be processed sent by at least one first terminal device, the method further includes: Generate an image file of the target program; Based on the image file, the target program is deployed to a virtual container, and the main loop process and multiple child processes of the target program are generated in the virtual container; Start the main loop process.
11. The data collaborative processing method as described in claim 10, characterized in that, The step of deploying the target program to a virtual container based on the image file, and generating the main loop process and multiple child processes of the target program in the virtual container, includes: The target program is deployed to multiple different virtual containers based on the image file; In each of the virtual containers, a main loop process and a child process of the target program are generated respectively.
12. A data collaborative processing device, characterized in that, Applied to a server, the device includes: The first acquisition module is used to acquire data to be processed sent by at least one first terminal device; The second acquisition module is used to acquire at least one processing module based on information sent by at least one second terminal device, wherein each of the processing modules is used to perform one or more business operations. The third acquisition module is used to acquire configuration information sent by at least one third terminal device. The configuration information is used to indicate the association information between the processing module and the data to be processed, between the processing module and other processing modules, and the execution parameters of the processing module. A generation module is used to generate a process instance based on the configuration information and the processing module. The process instance is used to indicate the data to be processed that needs to be called and the business operations that the processing module needs to perform on the data to be processed. The execution output module is used to execute the process instance and output the execution result data after the process instance is executed; The second acquisition module is specifically used for: Obtain the module declaration file sent by the second terminal device. The module declaration file is used to indicate the attribute information of the processing module to be created. The attribute information includes: module function, interface protocol, control command, and resource requirements. The processing module is created based on the module declaration file.
13. A computer device, characterized in that, include: A memory and a processor, wherein the memory stores a computer program that can run on the processor, and when the processor executes the computer program, it implements the steps of the method according to any one of claims 1 to 11.
14. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, implements the steps of the method according to any one of claims 1 to 11.