Engineering software process management method and system

By hashing the absolute path of the cost project file to obtain a unique identity, creating a multi-process main window and adding a project compilation process, solving the limitations and instability problems of process management of multi-project compilation systems in the existing technology, and achieving the effect of single-project single-process mode and inter-process synchronization.

CN119376737BActive Publication Date: 2025-04-18江西博微新技术有限公司
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411896571.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-12-23
Publication Date
2025-04-18
Estimated Expiration
2044-12-23

AI Technical Summary

Technical Problem

The existing multi-engineering system in the power cost engineering industry has a maximum memory allocation limit in process management, resulting in the single-process multi-document model that cannot meet the software memory requirements, and there are problems of impact, instability and synchronization between processes.

Method used

By obtaining the absolute path of the cost project file and hashing, a unique identifier is obtained, a multi-process main window is created based on this identifier, and the homepage window object is embedded in it. Add a cost project file to create a project compilation process, identify the process status and add it to the multiprocess main window. If the number of processes exceeds the preset value, process synchronization and constraint processing are performed to complete multi-process management.

Benefits of technology

It realizes the single-project single-process mode without modifying the original engineering compilation process logic, improves software stability, and provides stable inter-process synchronization strategies and good cross-platform features.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119376737B_ABST
    Figure CN119376737B_ABST
Patent Text Reader

Abstract

The present invention provides an engineering software process management method and system, the method comprising: performing hash processing based on the absolute path of the cost engineering file; creating a multi-process main window based on a unique identifier, and embedding a home window object into the multi-process main window; creating an engineering compilation process based on the cost engineering file, identifying the existence status of the engineering compilation process, and adding the corresponding engineering compilation process to the multi-process main window based on the existence status; identifying the number of processes in the multi-process main window, if the number of processes is greater than a preset value, synchronizing and constraining the processes in the multi-process main window to complete multi-process management. In the present invention, each project is compiled in a different process without affecting each other, which greatly improves the overall stability of the software, and at the same time has a stable inter-process synchronization strategy and good cross-platform characteristics.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the technical field of process management, and in particular relates to an engineering software process management method and system. Background Art

[0002] For the current electric power cost engineering industry, multi-project compilation is a common user demand in the current electric power cost engineering industry. Due to the system's maximum memory allocation limit for processes, the single-process multi-document operation mode can no longer meet the software's own increasing memory requirements. The existing multi-project compilation has problems such as mutual influence, asynchrony between processes, and instability. Summary of the invention

[0003] In order to solve the above technical problems, the present invention provides an engineering software process management method and system for solving the technical problems in the prior art.

[0004] On the one hand, the present invention provides the following technical solution, a method for managing an engineering software process, comprising:

[0005] Obtain a cost engineering file, and perform hash processing based on the absolute path of the cost engineering file to obtain a unique identifier;

[0006] Create a multi-process main window based on the unique identifier, and embed the home window object into the multi-process main window;

[0007] Add the corresponding cost engineering file, create an engineering compilation process based on the cost engineering file, identify the existence status of the engineering compilation process, and add the corresponding engineering compilation process to the multi-process main window based on the existence status;

[0008] The number of processes in the multi-process main window is identified. If the number of processes is greater than a preset value, the processes in the multi-process main window are synchronized and constrained to complete multi-process management.

[0009] Compared with the prior art, the beneficial effects of the present invention are as follows: the present invention first obtains the cost engineering file, performs hash processing based on the absolute path of the cost engineering file to obtain a unique identifier; then creates a multi-process main window based on the unique identifier, and embeds the home window object into the multi-process main window; then adds the corresponding cost engineering file, creates an engineering compilation process based on the cost engineering file, identifies the existence status of the engineering compilation process, and adds the corresponding engineering compilation process to the multi-process main window based on the existence status; finally, identifies the number of processes in the multi-process main window, and if the number of processes is greater than a preset value, synchronizes and constrains the processes in the multi-process main window to complete multi-process management. The present invention improves the implementation scheme of multi-document compilation, and can realize the single-project single-process working mode without modifying the processing logic of the original engineering compilation process, with less workload and without affecting the single-process multi-document working model. The switching between multi-process and single-process modes can be realized by configuring a switch, and each project is compiled in a different process without affecting each other, which greatly improves the overall stability of the software, and has a stable inter-process synchronization strategy and good cross-platform characteristics.

[0010] Preferably, the unique identifier is used to create a named shared memory and to indicate the management process to create it.

[0011] Preferably, the step of creating a multi-process main window based on the unique identifier and embedding the home window object into the multi-process main window includes:

[0012] Load the multi-process system and create a process manager, project request service, and multi-process document session manager;

[0013] Creating a multi-process window based on the unique identifier, and requesting the process manager to create a home page process through the multi-process window box;

[0014] Calling the registration request interface through RPC and initiating a registration request to the project request service with the process ID of the home page process and the main window handle information;

[0015] Record the content of the registration request through the engineering request service and synchronize the content to the process manager and the multi-process document session manager through an internal interface, and trigger a home page loading signal;

[0016] Receiving the home page loading signal through the multi-process main window and using the main window handle information to create a home page window object and a corresponding container component;

[0017] The home page window object is embedded into the multi-process main window through a corresponding container component.

[0018] Preferably, the step of adding the corresponding cost engineering file and creating an engineering compilation process based on the cost engineering file includes:

[0019] Add the corresponding cost engineering file in the window corresponding to the home window object according to the absolute path;

[0020] Creating a corresponding preloading process according to the cost engineering file and through the management process;

[0021] All business plug-ins are loaded and a project creation request is received, and a project compilation process is created through a process manager based on the project creation request.

[0022] Preferably, the step of identifying the existence status of the project compilation process and adding the corresponding project compilation process to the multi-process main window based on the existence status includes:

[0023] If there is no process in the multi-process main window that is the same as the project compilation process, has no software association and is started by software, directly adding the project compilation process to the multi-process main window;

[0024] If the main process exists as a process that is the same as the project compilation process and is started by software, the project compilation process is used as a temporary process and a new multi-process main window is created, and the project compilation process is added to the new multi-process window;

[0025] If there is no process in the multi-process main window that is the same as the project compilation process, has no software association, and is started by dragging or dropping, or an exe file, then a registration request interface is called through RPC, and a project compilation process registration request is initiated to a project request service with the process ID of the project compilation process and the project compilation handle information, the content of the project compilation process registration request is recorded through the project request service, and the content is synchronized to the process manager and the multi-process document session manager through an internal interface, and a project compilation process loading signal is triggered, the project compilation process loading signal is received through the multi-process main window, and the project compilation handle information is used to create a project compilation handle information window object and a corresponding container component, and the project compilation handle information window object is embedded into the multi-process main window through the corresponding container component.

[0026] Preferably, the step of synchronizing and constraining the processes in the multi-process main window to complete multi-process management includes:

[0027] Create a remote object manager object and register service information with the RPC registry;

[0028] When process A in the multi-process main window is started, a remote synchronization object A is created, and is registered with the management process through an RPC call and registration information A is generated. The remote object manager saves the corresponding communication session and process association information according to the registration information A;

[0029] When the B process in the multi-process main window is started, a remote synchronization object B is created, and is registered with the management process through an RPC call and registration information B is generated. The remote object manager saves the corresponding communication session and process association information according to the registration information B;

[0030] Use Qt signal slot mechanism to connect process B to signalA signal and register slot function;

[0031] When process A triggers the signalA signal, remote synchronization object A calls the RPC interface to control the remote object manager object to broadcast the signalA signal to all registered remote synchronization objects;

[0032] When process B receives the signalA signal, it calls the slot function to complete multi-process management.

[0033] In a second aspect, the present invention provides the following technical solution, an engineering software process management system, the system comprising:

[0034] A processing module, used for obtaining a cost engineering file, and performing hash processing based on the absolute path of the cost engineering file to obtain a unique identifier;

[0035] An embedding module, used to create a multi-process main window based on the unique identifier, and embed the home window object into the multi-process main window;

[0036] An adding module, used for adding the corresponding cost engineering file, creating an engineering compilation process based on the cost engineering file, identifying the existence status of the engineering compilation process, and adding the corresponding engineering compilation process to the multi-process main window based on the existence status;

[0037] The management module is used to identify the number of processes in the multi-process main window. If the number of processes is greater than a preset value, the processes in the multi-process main window are synchronized and constrained to complete multi-process management.

[0038] Preferably, the embedded module includes:

[0039] Loading submodule, used to load the multi-process system and create a process manager, project request service, and multi-process document session manager;

[0040] A creation submodule, used for creating a multi-process window based on the unique identifier, and requesting the process manager to create a home page process through the multi-process window box;

[0041] A registration submodule, used to call a registration request interface through RPC and initiate a registration request to the project request service with the process ID of the home page process and the main window handle information;

[0042] A trigger submodule, used to record the content of the registration request through the project request service and synchronize the content to the process manager and the multi-process document session manager through an internal interface, and trigger a home page loading signal;

[0043] A container submodule, used for receiving the home page loading signal through the multi-process main window and creating a home page window object and a corresponding container component using the main window handle information;

[0044] The embedding submodule is used to embed the home page window object into the multi-process main window through a corresponding container component.

[0045] In a third aspect, the present invention provides the following technical solution: a computer comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the engineering software process management method as described above when executing the computer program.

[0046] In a fourth aspect, the present invention provides the following technical solution: a storage medium having a computer program stored thereon, wherein the computer program, when executed by a processor, implements the engineering software process management method as described above. BRIEF DESCRIPTION OF THE DRAWINGS

[0047] In order to more clearly illustrate the technical solutions in the embodiments of the present invention, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.

[0048] Figure 1 A flowchart of the engineering software process management method provided in Embodiment 1 of the present invention;

[0049] Figure 2 A structural block diagram of an engineering software process management system provided in Embodiment 2 of the present invention;

[0050] Figure 3 A schematic diagram of the hardware structure of a computer provided in another embodiment of the present invention.

[0051] The embodiments of the present invention will be further described below with reference to the accompanying drawings. DETAILED DESCRIPTION

[0052] Embodiments of the present invention are described in detail below, examples of which are shown in the accompanying drawings, wherein the same or similar reference numerals throughout represent the same or similar elements or elements having the same or similar functions. The embodiments described below with reference to the accompanying drawings are exemplary and are intended to be used to explain the embodiments of the present invention, and should not be construed as limiting the present invention.

[0053] In the description of the embodiments of the present invention, it should be understood that the terms "length", "width", "up", "down", "front", "back", "left", "right", "vertical", "horizontal", "top", "bottom", "inside" and "outside" etc., indicating orientations or positional relationships, are based on the orientations or positional relationships shown in the accompanying drawings, and are only for the convenience of describing the embodiments of the present invention and simplifying the description, and do not indicate or imply that the referred device or element must have a specific orientation, be constructed and operated in a specific orientation, and therefore should not be understood as a limitation on the present invention.

[0054] In addition, the terms "first" and "second" are used for descriptive purposes only and should not be understood as indicating or implying relative importance or implicitly indicating the number of the indicated technical features. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of the features. In the description of the embodiments of the present invention, the meaning of "plurality" is two or more, unless otherwise clearly and specifically defined.

[0055] In the embodiments of the present invention, unless otherwise clearly specified and limited, the terms "installed", "connected", "connected", "fixed" and the like should be understood in a broad sense, for example, it can be a fixed connection, a detachable connection, or an integral connection; it can be a mechanical connection or an electrical connection; it can be a direct connection or an indirect connection through an intermediate medium, it can be the internal connection of two elements or the interaction relationship between two elements. For ordinary technicians in this field, the specific meanings of the above terms in the embodiments of the present invention can be understood according to specific circumstances.

[0056] Embodiment 1

[0057] In the first embodiment of the present invention, Figure 1 As shown, a method for engineering software process management includes:

[0058] S1. Obtain a cost engineering file, and perform hash processing based on the absolute path of the cost engineering file to obtain a unique identifier;

[0059] Specifically, for cost engineering files, one or more of them can be used by users to perform engineering compilation process, and the unique identifier is used to create a named shared memory and to represent the management process to create it.

[0060] S2. Create a multi-process main window based on the unique identifier, and embed the home window object into the multi-process main window;

[0061] Wherein, the step S2 comprises:

[0062] S21, load the multi-process system and create a process manager, a project request service, and a multi-process document session manager;

[0063] Specifically, in this step, the multi-process system is loaded instead of compiling the engineering business system, and then the process manages the business logic and creates the corresponding process manager, engineering request service, and multi-process document session manager.

[0064] S22, creating a multi-process window based on the unique identifier, and requesting the process manager to create a home page process through the multi-process window box;

[0065] Specifically, the home page process only provides an operation entry for the cost engineering file and does not serve as a specific engineering compilation interface.

[0066] S23, calling the registration request interface through RPC and initiating a registration request to the project request service with the process ID of the home page process and the main window handle information.

[0067] S24, recording the content of the registration request through the project request service and synchronizing the content to the process manager and the multi-process document session manager through an internal interface, and triggering a home page loading signal.

[0068] S25. Receive the home page loading signal through the multi-process main window and use the main window handle information to create a home page window object and a corresponding container component.

[0069] S26. Embed the home page window object into the multi-process main window through a corresponding container component.

[0070] S3, adding the corresponding cost engineering file, creating an engineering compilation process based on the cost engineering file, identifying the existence status of the engineering compilation process, and adding the corresponding engineering compilation process to the multi-process main window based on the existence status;

[0071] The step of adding the corresponding cost engineering file and creating an engineering compilation process based on the cost engineering file includes:

[0072] S311, adding the corresponding cost engineering file according to the absolute path in the window corresponding to the home window object;

[0073] Specifically, the window here is the home page window, and the cost engineering files can be added according to the path.

[0074] S312, creating a corresponding preloading process according to the cost engineering file and through the management process;

[0075] Specifically, the preloading processes here correspond to the corresponding projects, and the compilation of each process can use the corresponding cost engineering file, and the preloading processes are created by the management process. When the management process starts a new preloading process, it will generate a GUID as the Preload parameter. The non-management process can determine whether it is a preloading process by whether the startup parameters contain the Preload parameter. If it is a preloading process, it enters the process lock and waits for the new project request to release the process lock before continuing the plug-in business.

[0076] S313, loading all business plug-ins and receiving a project creation request, and creating a project compilation process based on the project creation request through a process manager;

[0077] Since the preload process has already loaded all business plug-ins, when there is a new project request, the process manager will give priority to the preload process, skipping the plug-in loading logic and greatly reducing the time consumption of opening a new project;

[0078] As for the actual compilation process, the corresponding plug-in can be started through a launcher, and then the corresponding process can be created in the management process in the UI interface. After that, various business plug-ins and corresponding cost engineering files can be used to carry out the engineering compilation process.

[0079] The step of identifying the existence status of the project compilation process and adding the corresponding project compilation process to the multi-process main window based on the existence status includes:

[0080] S321. If there is no process in the multi-process main window that is the same as the project compilation process, has no software association, and is started by software, directly adding the project compilation process to the multi-process main window;

[0081] Specifically, when starting the degree or opening the engineer through different startup methods, there is different logic. If there is no process in the multi-process main window that is the same as the project compilation process, has no software association, and is started by double-clicking the software shortcut, double-clicking the exe file, the taskbar icon, the system start menu, etc., then this process is the project management process, and then it is added behind the window of the home page process, that is, added to the multi-process main window.

[0082] S322: If the main process has a process that is the same as the project compilation process and is started by software, use the project compilation process as a temporary process and create a new multi-process main window, and add the project compilation process to the new multi-process window;

[0083] Specifically, when the main process is the same as the project compilation process and is started by double-clicking a shortcut, double-clicking an exe file, a taskbar icon, a system start menu, etc., it means that the process is a temporary process. The temporary process is just an intermediate process that sends a notification to the management process, and then notifies the project management process to create a new multi-process main window, and then will actively exit.

[0084] S323, if there is no process in the multi-process main window that is the same as the project compilation process, has no software association, and is started by dragging or dropping, or an exe file, then a registration request interface is called through RPC, and a project compilation process registration request is initiated to a project request service using the process ID of the project compilation process and the project compilation handle information, the project request service records the content of the project compilation process registration request, and synchronizes the content to a process manager and a multi-process document session manager through an internal interface, and triggers a project compilation process loading signal, receives the project compilation process loading signal through the multi-process main window, and uses the project compilation handle information to create a project compilation handle information window object and a corresponding container component, and embeds the project compilation handle information window object into the multi-process main window through the corresponding container component;

[0085] Specifically, if there is no process in the multi-process main window that is identical to the project compilation process, has no software association, and is started by dragging, exe file, or directly double-clicking the software-associated project file, the project management process will be started first. After the management process is started, the home page process will be started, and the dragged project file will be used to create a project compilation process. After the project compilation process is started, a preloading process will be created. This process is similar to the above steps S23-S26.

[0086] S4, identifying the number of processes in the multi-process main window, and if the number of processes is greater than a preset value, synchronizing and constraining the processes in the multi-process main window to complete multi-process management;

[0087] Specifically, in multi-process mode, since each process works in a different memory space, there must be some commonly used files (such as configuration files) between processes. At the same time, when a process enters or exits a certain running state (such as entering a mode), it is necessary to notify other processes to enter or exit this state at the same time. The present invention provides a general remote signal mechanism based on the RPC framework, which realizes a cross-process signal slot mechanism. Only different signals or connection slots need to be registered to achieve inter-process synchronization.

[0088] Wherein, the step S4 comprises:

[0089] S41. Create a remote object manager object and register service information with the RPC registration center.

[0090] S42. When process A in the multi-process main window is started, a remote synchronization object A is created, and is registered with the management process through an RPC call and registration information A is generated. The remote object manager saves the corresponding communication session and process association information according to the registration information A.

[0091] S43. When the B process in the multi-process main window is started, a remote synchronization object B is created, and is registered with the management process through an RPC call and registration information B is generated. The remote object manager saves the corresponding communication session and process association information according to the registration information B.

[0092] S44. Use the Qt signal-slot mechanism to connect process B to the signalA signal and register the slot function.

[0093] S45. When process A triggers the signalA signal, remote synchronization object A calls the RPC interface to control the remote object manager object to broadcast the signalA signal to all registered remote synchronization objects.

[0094] S46. When process B receives the signalA signal, it calls the slot function to complete multi-process management.

[0095] It should be noted that in certain business scenarios, certain operations can only be performed by one process at a time. When a process has obtained the right to operate (i.e., it occupies the inter-process synchronization lock), other processes that want to request this operation should enter a waiting state (waiting for the system to allocate the right to the process). Only after the right to operate (i.e., releasing the inter-process synchronization lock) is released can the process continue to run. The present invention proposes an exclusive lock mechanism to support such business scenarios, as follows:

[0096] Assuming that the current project compilation process is process A, process A can apply to register exclusive lock A. When the request is successful, process A performs exclusive operation. If there is a process B at this time, it cannot perform the compilation process, so it needs to request exclusive lock A. When process A is exclusive, process B's request will fail and enter the locked state. At this time, if process A releases exclusive lock A and updates the execution result, process B's request will succeed and notify. At this time, process B exits the locked state, obtains the execution result and continues subsequent operations.

[0097] The engineering software process management method provided in the first embodiment of the present invention first obtains the cost engineering file, performs hash processing based on the absolute path of the cost engineering file to obtain a unique identifier; then creates a multi-process main window based on the unique identifier, and embeds the home window object into the multi-process main window; then adds the corresponding cost engineering file, creates an engineering compilation process based on the cost engineering file, identifies the existence status of the engineering compilation process, and adds the corresponding engineering compilation process to the multi-process main window based on the existence status; finally, identifies the number of processes in the multi-process main window, and if the number of processes is greater than a preset value, synchronizes and constrains the processes in the multi-process main window to complete multi-process management. The present invention improves the implementation scheme of multi-document compilation, and can realize the single-project single-process working mode without modifying the processing logic of the original engineering compilation process, with less workload and without affecting the single-process multi-document working model. The switching between multi-process and single-process modes can be realized by configuring a switch, and each project is compiled in a different process without affecting each other, which greatly improves the overall stability of the software, and has a stable inter-process synchronization strategy and good cross-platform characteristics.

[0098] Embodiment 2

[0099] like Figure 2 As shown, in the second embodiment of the present invention, an engineering software process management system is provided, and the system includes:

[0100] Processing module 1 is used to obtain a cost engineering file and perform hash processing based on the absolute path of the cost engineering file to obtain a unique identifier;

[0101] Embedding module 2, used to create a multi-process main window based on the unique identifier, and embed the home window object into the multi-process main window;

[0102] Adding module 3, used for adding the corresponding cost engineering file, creating an engineering compilation process based on the cost engineering file, identifying the existence status of the engineering compilation process, and adding the corresponding engineering compilation process to the multi-process main window based on the existence status;

[0103] The management module 4 is used to identify the number of processes in the multi-process main window. If the number of processes is greater than a preset value, the processes in the multi-process main window are synchronized and constrained to complete multi-process management.

[0104] Wherein, the embedded module 2 includes:

[0105] Loading submodule, used to load the multi-process system and create a process manager, project request service, and multi-process document session manager;

[0106] A creation submodule, used for creating a multi-process window based on the unique identifier, and requesting the process manager to create a home page process through the multi-process window box;

[0107] A registration submodule, used to call a registration request interface through RPC and initiate a registration request to the project request service with the process ID of the home page process and the main window handle information;

[0108] A trigger submodule, used to record the content of the registration request through the project request service and synchronize the content to the process manager and the multi-process document session manager through an internal interface, and trigger a home page loading signal;

[0109] A container submodule, used for receiving the home page loading signal through the multi-process main window and creating a home page window object and a corresponding container component using the main window handle information;

[0110] The embedding submodule is used to embed the home page window object into the multi-process main window through a corresponding container component.

[0111] The adding module 3 comprises:

[0112] A file adding submodule, used for adding the corresponding cost engineering file according to the absolute path in the window corresponding to the home window object;

[0113] A preloading submodule, used to create a corresponding preloading process according to the cost engineering file and through the management process;

[0114] The project compilation submodule is used to load all business plug-ins and receive a project creation request, and create a project compilation process based on the project creation request through a process manager.

[0115] The adding module 3 also includes:

[0116] A first adding submodule is used for directly adding the project compiling process to the multi-process main window if there is no process in the multi-process main window that is the same as the project compiling process, has no software association and is started by software;

[0117] The second adding submodule is used for, if the main process has a process that is the same as the project compiling process and is started by software, using the project compiling process as a temporary process and creating a new multi-process main window, and adding the project compiling process to the new multi-process window;

[0118] The third adding submodule is used for initiating a project compilation process registration request to the project request service through RPC calling the registration request interface and using the process ID of the project compilation process and the project compilation handle information if there is no process in the multi-process main window that is the same as the project compilation process, has no software association, and is started by dragging and dropping or an exe file; recording the content of the project compilation process registration request through the project request service and synchronizing the content to the process manager and the multi-process document session manager through the internal interface; triggering a project compilation process loading signal; receiving the project compilation process loading signal through the multi-process main window and using the project compilation handle information to create a project compilation handle information window object and a corresponding container component; and embedding the project compilation handle information window object into the multi-process main window through the corresponding container component.

[0119] The management module 4 includes:

[0120] The registration service submodule is used to create a remote object manager object and register service information in the RPC registration center;

[0121] The first object creation submodule is used to create a remote synchronization object A when the A process in the multi-process main window is started, register with the management process through an RPC call and generate registration information A, and save the corresponding communication session and process association information according to the registration information A through the remote object manager;

[0122] The second object creation submodule is used to create a remote synchronization object B when the B process in the multi-process main window is started, register with the management process through an RPC call and generate registration information B, and save the corresponding communication session and process association information according to the registration information B through the remote object manager;

[0123] The function registration submodule is used to connect process B to the signalA signal and register the slot function using the Qt signal slot mechanism;

[0124] The broadcast submodule is used for, when process A triggers the signalA signal, controlling the remote object manager object to broadcast the signalA signal to all registered remote synchronization objects through remote synchronization object A calling the RPC interface;

[0125] The function calling submodule is used to call the slot function when process B receives the signalA signal to complete multi-process management.

[0126] In some other embodiments of the present invention, the embodiments of the present invention provide the following technical solutions: a computer, comprising a memory 102, a processor 101, and a computer program stored in the memory 102 and executable on the processor 101, wherein the processor 101 implements the engineering software process management method as described above when executing the computer program.

[0127] Specifically, the processor 101 may include a central processing unit (CPU), or an application specific integrated circuit (ASIC), or may be configured to implement one or more integrated circuits of the embodiment of the present invention.

[0128] Among them, the memory 102 may include a large-capacity memory for data or instructions. By way of example and not limitation, the memory 102 may include a hard disk drive (HDD), a floppy disk drive, a solid state drive (SSD), a flash memory, an optical disk, a magneto-optical disk, a magnetic tape, or a universal serial bus (USB) drive, or a combination of two or more of these. Where appropriate, the memory 102 may include a removable or non-removable (or fixed) medium. Where appropriate, the memory 102 may be inside or outside the data processing device. In a specific embodiment, the memory 102 is a non-volatile memory. In a specific embodiment, the memory 102 includes a read-only memory (ROM) and a random access memory (RAM). Where appropriate, the ROM may be a mask-programmed ROM, a programmable ROM (PROM), an erasable PROM (EPROM), an electrically erasable PROM (EEPROM), an electrically alterable ROM (EAROM) or a flash memory (FLASH), or a combination of two or more of these. Under appropriate circumstances, the RAM can be a static random access memory (SRAM) or a dynamic random access memory (DRAM), wherein the DRAM can be a fast page mode dynamic random access memory (FPMDRAM), an extended data output dynamic random access memory (EDODRAM), a synchronous dynamic random access memory (SDRAM), etc.

[0129] The memory 102 may be used to store or cache various data files that need to be processed and / or used for communication, as well as possible computer program instructions executed by the processor 101 .

[0130] The processor 101 implements the above-mentioned engineering software process management method by reading and executing the computer program instructions stored in the memory 102 .

[0131] In some embodiments, the computer may further include a communication interface 103 and a bus 100. Figure 3 As shown, the processor 101, the memory 102, and the communication interface 103 are connected via a bus 100 and communicate with each other.

[0132] The communication interface 103 is used to implement communication between the modules, devices, units and / or equipment in the embodiment of the present invention. The communication interface 103 can also implement data communication with other components such as: external devices, image / data acquisition equipment, databases, external storage, and image / data processing workstations.

[0133] The bus 100 includes hardware, software or both, and couples the components of the computer device to each other. The bus 100 includes but is not limited to at least one of the following: a data bus, an address bus, a control bus, an expansion bus, and a local bus. By way of example and not limitation, bus 100 may include an Accelerated Graphics Port (AGP) or other graphics bus, an Extended Industry Standard Architecture (EISA) bus, a Front Side Bus (FSB), a Hyper Transport (HT) interconnect, an Industry Standard Architecture (ISA) bus, an InfiniBand interconnect, a Low Pin Count (LPC) bus, a memory bus, a Micro Channel Architecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI-Express (PCI-X) bus, a Serial Advanced Technology Attachment (SATA) bus, a Video Electronics Standards Association Local Bus (VLB) bus, or other suitable buses or a combination of two or more of these. Where appropriate, bus 100 may include one or more buses. Although embodiments of the present invention describe and illustrate a particular bus, the present invention contemplates any suitable bus or interconnect.

[0134] The computer can execute the engineering software process management method of the present invention based on the acquired engineering software process management system, thereby realizing engineering software process management.

[0135] In some further embodiments of the present invention, in combination with the above-mentioned engineering software process management method, the embodiments of the present invention provide the following technical solutions, a storage medium, on which a computer program is stored, and when the computer program is executed by a processor, the above-mentioned engineering software process management method is implemented.

[0136] Those skilled in the art will appreciate that the logic and / or steps represented in the flowchart or otherwise described herein, for example, may be considered as an ordered list of executable instructions for implementing logical functions, and may be specifically implemented in any computer-readable medium for use by an instruction execution system, device or apparatus (such as a computer-based system, a system including a processor, or other system that can fetch instructions from an instruction execution system, device or apparatus and execute instructions), or in conjunction with such instruction execution systems, devices or apparatuses. For purposes of this specification, "computer-readable medium" may be any device that can contain, store, communicate, propagate or transmit a program for use by an instruction execution system, device or apparatus, or in conjunction with such instruction execution systems, devices or apparatuses.

[0137] More specific examples of readable media (a non-exhaustive list) include the following: an electrical connection with one or more wires (electronic device), a portable computer disk case (magnetic device), a random access memory (RAM), a read-only memory (ROM), an erasable and programmable read-only memory (EPROM or flash memory), an optical fiber device, and a portable compact disk read-only memory (CDROM). In addition, the computer-readable medium may even be a paper or other suitable medium on which the program is printed, since the program may be obtained electronically, for example, by optically scanning the paper or other medium, followed by editing, deciphering or, if necessary, processing in another suitable manner, and then stored in a computer memory.

[0138] It should be understood that the various parts of the present invention can be implemented by hardware, software, firmware or a combination thereof. In the above-mentioned embodiments, multiple steps or methods can be implemented by software or firmware stored in a memory and executed by a suitable instruction execution system. For example, if implemented by hardware, as in another embodiment, it can be implemented by any one of the following technologies known in the art or a combination thereof: a discrete logic circuit having a logic gate circuit for implementing a logic function for a data signal, a dedicated integrated circuit having a suitable combination of logic gate circuits, a programmable gate array (PGA), a field programmable gate array (FPGA), etc.

[0139] The technical features of the above-described embodiments may be arbitrarily combined. To make the description concise, not all possible combinations of the technical features in the above-described embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0140] The above-mentioned embodiments only express several implementation methods of the present invention, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the invention patent. It should be pointed out that, for ordinary technicians in this field, several variations and improvements can be made without departing from the concept of the present invention, and these all belong to the protection scope of the present invention. Therefore, the protection scope of the patent of the present invention shall be subject to the attached claims.

Claims

1. A method for engineering software process management, characterized in that: include: Obtain a cost engineering file, and perform hash processing based on the absolute path of the cost engineering file to obtain a unique identifier; Create a multi-process main window based on the unique identifier, and embed the home window object into the multi-process main window; Add the corresponding cost engineering file, create an engineering compilation process based on the cost engineering file, identify the existence status of the engineering compilation process, and add the corresponding engineering compilation process to the multi-process main window based on the existence status; Identifying the number of processes in the multi-process main window, and if the number of processes is greater than a preset value, synchronizing and constraining the processes in the multi-process main window to complete multi-process management; The step of identifying the existence status of the project compilation process and adding the corresponding project compilation process to the multi-process main window based on the existence status comprises: If there is no process in the multi-process main window that is the same as the project compilation process and has no software association, and the project compilation process is started through the taskbar icon or the system start menu, then directly add the project compilation process to the multi-process main window; If the main process is the same as the project compilation process, and the project compilation process is started through the taskbar icon or the system start menu, the project compilation process is used as a temporary process and a new multi-process main window is created, and the project compilation process is added to the new multi-process window; If there is no process in the multi-process main window that is the same as the project compilation process and has no software association, and the project compilation process is started by dragging, exe file or directly double-clicking the project file associated with the software, then the registration request interface is called through RPC and a project compilation process registration request is initiated to the project request service with the process ID of the project compilation process and the project compilation handle information, the project request service records the content of the project compilation process registration request and synchronizes the content to the process manager and the multi-process document session manager through the internal interface, and triggers a project compilation process loading signal, receives the project compilation process loading signal through the multi-process main window and uses the project compilation handle information to create a project compilation handle information window object and a corresponding container component, and embeds the project compilation handle information window object into the multi-process main window through the corresponding container component.

2. The engineering software process management method according to claim 1, characterized in that: The unique identifier is used to create a named shared memory and to indicate that the management process has been created.

3. The engineering software process management method according to claim 1, characterized in that: The step of creating a multi-process main window based on the unique identifier and embedding the home window object into the multi-process main window comprises: Load the multi-process system and create a process manager, project request service, and multi-process document session manager; Creating a multi-process window based on the unique identifier, and requesting the process manager to create a home page process through the multi-process window; Calling the registration request interface through RPC and initiating a registration request to the project request service with the process ID of the home page process and the main window handle information; Record the content of the registration request through the engineering request service and synchronize the content to the process manager and the multi-process document session manager through an internal interface, and trigger a home page loading signal; Receiving the home page loading signal through the multi-process main window and using the main window handle information to create a home page window object and a corresponding container component; The home page window object is embedded into the multi-process main window through a corresponding container component.

4. The engineering software process management method according to claim 3, characterized in that: The step of adding the corresponding cost engineering file and creating an engineering compilation process based on the cost engineering file includes: Add the corresponding cost engineering file in the window corresponding to the home window object according to the absolute path; Creating a corresponding preloading process according to the cost engineering file and through the management process; All business plug-ins are loaded and a project creation request is received, and a project compilation process is created through a process manager based on the project creation request.

5. The engineering software process management method according to claim 1, characterized in that: The step of synchronizing and constraining the processes in the multi-process main window to complete multi-process management includes: Create a remote object manager object and register service information with the RPC registry; When process A in the multi-process main window is started, a remote synchronization object A is created, and is registered with the management process through an RPC call and registration information A is generated. The remote object manager saves the corresponding communication session and process association information according to the registration information A; When the B process in the multi-process main window is started, a remote synchronization object B is created, and is registered with the management process through an RPC call and registration information B is generated. The remote object manager saves the corresponding communication session and process association information according to the registration information B; Use the Qt signal slot mechanism to connect process B to the signalA signal and register the slot function; When process A triggers the signalA signal, remote synchronization object A calls the RPC interface to control the remote object manager object to broadcast the signalA signal to all registered remote synchronization objects; When process B receives the signalA signal, it calls the slot function to complete multi-process management.

6. An engineering software process management system, the system adopts the engineering software process management method according to claim 1, characterized in that: The system comprises: A processing module, used for obtaining a cost engineering file, and performing hash processing based on the absolute path of the cost engineering file to obtain a unique identifier; An embedding module, used to create a multi-process main window based on the unique identifier, and embed the home window object into the multi-process main window; An adding module, used for adding the corresponding cost engineering file, creating an engineering compilation process based on the cost engineering file, identifying the existence status of the engineering compilation process, and adding the corresponding engineering compilation process to the multi-process main window based on the existence status; The management module is used to identify the number of processes in the multi-process main window. If the number of processes is greater than a preset value, the processes in the multi-process main window are synchronized and constrained to complete multi-process management.

7. The engineering software process management system according to claim 6, characterized in that: The embedded module comprises: Loading submodule, used to load the multi-process system and create a process manager, project request service, and multi-process document session manager; A creation submodule, used for creating a multi-process window based on the unique identifier, and requesting the process manager to create a home page process through the multi-process window; A registration submodule, used to call a registration request interface through RPC and initiate a registration request to the project request service with the process ID of the home page process and the main window handle information; A trigger submodule, used to record the content of the registration request through the project request service and synchronize the content to the process manager and the multi-process document session manager through an internal interface, and trigger a home page loading signal; A container submodule, used for receiving the home page loading signal through the multi-process main window and creating a home page window object and a corresponding container component using the main window handle information; The embedding submodule is used to embed the home page window object into the multi-process main window through a corresponding container component.

8. A computer comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the computer program, the engineering software process management method according to any one of claims 1 to 5 is implemented.

9. A storage medium, characterized in that: The storage medium stores a computer program, and when the computer program is executed by the processor, the engineering software process management method according to any one of claims 1 to 5 is implemented.

Citation Information

Patent Citations

  • Inter-process communication method and device

    CN103631664A

  • Control capture method and equipment

    CN104598282A