Information processing device, and method
A tree structure is used to manage parallel processes in application programs, enhancing visibility and simplifying updates by associating nodes with subdivided processes and edges with information flow, addressing the complexity of chaotic information processing.
Patent Information
- Application Number
- JP2023112313
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-07-07
- Publication Date
- 2025-01-20
Smart Images

Figure 2025009360000001_ABST
Abstract
Description
[Technical field]
[0001] The present disclosure relates to managing programs. [Background technology]
[0002] A method for supporting the configuration of an application program is disclosed that supports the configuration of an application program by combining multiple program parts divided according to functional units (for example, Patent Document 1). The history of application realization is displayed by a directed graph, and when one of the nodes in the graph is selected, the history of the selected program at the time of realization of the selected node is displayed on a history sub-screen. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Publication No. 09-258975 Summary of the Invention [Problem to be solved by the invention]
[0004] An object of the present disclosure is to provide an information processing device and method that can improve the visibility of a program structure. [Means for solving the problem]
[0005] One aspect of the present disclosure is a control unit that, for a first process including a plurality of processes, some of which can be executed in parallel, associates the plurality of processes with a plurality of nodes, acquires information indicating a tree structure in which information between the plurality of processes or a process flow is associated with edges connecting the plurality of nodes, and stores the information in a storage unit; When a message is input from another node connected by a first edge, each of the plurality of nodes independently executes a corresponding one of the plurality of processes, and outputs a message to another node connected by a second edge, thereby executing the first process. It is an information processing device.
[0006] Another aspect of the present disclosure is The computer For a first process including a plurality of processes, some of which can be executed in parallel, acquiring information indicating a tree structure in which the plurality of processes are associated with a plurality of nodes and information between the plurality of processes or a process flow is associated with edges connecting the plurality of nodes, and storing the information in a storage unit; When a message is input from another node connected by a first edge, each of the plurality of nodes independently executes a corresponding one of the plurality of processes, and outputs a message to another node connected by a second edge, thereby executing the first process. This is the method. Effect of the Invention
[0007] According to the present disclosure, it is possible to improve visibility of the program structure. [Brief description of the drawings]
[0008] [Figure 1] FIG. 1 is a diagram showing an example of a tree structure for the display user information generation process. [Diagram 2] FIG. 2 is a diagram illustrating an example of a hardware configuration of an information processing device. [Diagram 3] FIG. 3 is a diagram illustrating an example of a functional configuration of the information processing device. [Figure 4] FIG. 4 is an example of the node information. [Diagram 5] FIG. 5 is an example of edge information. [Figure 6] FIG. 6 is an example of a flowchart of node processing. [Figure 7] FIG. 7 is an example of a flowchart of a tree display process in a tree object process. [Figure 8] FIG. 8 is an example of a flowchart of a change process for a tree in a tree target process. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0009] For example, a screen in an application program often displays multiple items. The multiple items displayed on the screen are often newly generated or processed from one or more information sources, such as data fetched from an API, and then displayed. For example, if the information of the items displayed on the screen is derived and processed in a disorderly manner due to an update by a person other than the creator of the application program, there is a high possibility that the program will become complicated.
[0010] In view of the above problem, in this disclosure, each of a plurality of processes included in a first process, some of which can be executed in parallel, is regarded as one node of distributed computing, and the plurality of processes are associated with nodes in a tree structure, and information or process flows between the plurality of processes are associated with edges connecting the nodes in the tree structure, thereby managing the first process in a tree structure. This makes it possible to represent the first process in a tree structure, and makes it easy to see the structure of the first process.
[0011] More specifically, one aspect of the present disclosure is an information processing device including a control unit. The control unit acquires information indicating a tree structure in which a first process, which includes a plurality of processes and some of which can be executed in parallel, is associated with a plurality of nodes and information or a process flow between the plurality of processes is associated with an edge connecting the plurality of nodes, and stores the information in the storage unit. When a message is input from another node connected by the first edge, each of the plurality of nodes independently executes the associated process among the plurality of processes included in the first process, and outputs a message to another node connected by the second edge. This executes the first process.
[0012] The information processing device may be, for example, a dedicated computer such as a server, or a general-purpose computer such as a user terminal such as a PC (Personal Computer), a smartphone, or a tablet terminal. The control unit may be, for example, a processor such as a central processing unit (CPU) and a graphics processing unit (GPU), and a circuit such as a field programmable gate array (FPGA). The storage unit may be, for example, an auxiliary storage device such as an erasable programmable ROM (EPROM), a hard disk drive, or a solid state drive (SSD). The storage unit may be provided in an information processing device. Alternatively, it may be provided in an external device.
[0013] The first process is, for example, a process of acquiring and processing multiple pieces of information, such as acquiring and processing information included on a display screen, and a process of processing multiple pieces of information to be input to a machine learning model into a format suitable for the input. Such a first process can be subdivided into multiple processes expressed in a predetermined format, such as a process of executing a predetermined process in response to the input of a predetermined message and outputting a message indicating the execution result. Furthermore, some of the subdivided processes of the first process as described above are processes that can be executed in parallel, regardless of the order of execution. The concept of the actor model can be applied to the first process by, for example, associating multiple subdivided processes, some of which can be executed in parallel, represented in a specific format with actors in the actor model, which is one of the models of distributed computing.
[0014] Furthermore, by expressing the subdivided processes in a specified format, such as a process that executes a specified process in response to a specified message input and outputs a message indicating the execution result, the flow of information or processes between the subdivided processes becomes clear. This makes it possible to associate the subdivided processes with nodes and the flow of information or processes between the subdivided processes with edges, and to manage the first process in a tree structure.
[0015] By managing the first process in a tree structure, the first process can be provided to the user in the form of a tree in which the subdivided processes are nodes and the information or process flow between the subdivided processes are edges. This allows the user to visually and intuitively understand the relationships between the subdivided processes and the information or process flow in the first process, improving the outlook for the first process.
[0016] In one aspect of the present disclosure, the control unit may receive a user operation for a change to a tree corresponding to the first processing as a change to the first processing, and may reflect the change to the tree corresponding to the first processing in information indicating a tree structure corresponding to the first processing based on the user operation, thereby reflecting the change to the first processing in the first processing. The change to the tree may include, for example, addition or deletion of nodes and edges, change of nodes, and change of connection nodes of edges. In one aspect of the present disclosure, the nodes correspond to the subdivided processing of the first processing, and the edges correspond to information or processing flow between the subdivided processing, so that the change to the tree can be limited to a change to a processing related to the change. In other words, the change to the tree corresponding to the first processing can be reflected locally in the information indicating the tree structure corresponding to the first processing.
[0017] The present disclosure can be specified, as another aspect, as a method in which a computer executes the process executed by the information processing device. The method includes a computer acquiring information indicating a tree structure in which a first process including a plurality of processes and a part of the plurality of processes can be executed in parallel is associated with a plurality of nodes, and information between the plurality of processes or a process flow is associated with an edge connecting the plurality of nodes, and storing the information in a storage unit. When a message is input from another node connected by a first edge, each of the plurality of nodes independently executes the associated process among the plurality of processes and outputs a message to another node connected by a second edge, thereby executing the first process. The present disclosure can be specified, as another aspect, as a program for causing a computer to execute the above method, and a non-transitory computer-readable recording medium having the program recorded thereon.
[0018] Hereinafter, embodiments of the present disclosure will be described with reference to the drawings. The configurations of the following embodiments are merely examples, and the present disclosure is not limited to the configurations of the embodiments.
[0019] First Embodiment 1 is a diagram showing an example of a tree structure of a process for generating user information for display. The process for generating user information for display is a process for generating information to be included in a display screen of user information that is displayed when, for example, one of the menus of a predetermined application program, a "Confirm User Information" menu, is selected.
[0020] The process of generating the display user information can be divided into the following processes, for example. (1) A user operation input for selecting the menu "Confirm user information" is received. (2) User information is acquired from the API server. The user information includes, for example, a user image, a first name, a last name, an address (prefecture), an address (city, ward, town, village), an address (block number), and the like. (3-1) Extract the user image item from the user information obtained from the API server. (3-2) Extract the last name field from the user information obtained from the API server. (3-3) Extract the first name from the user information obtained from the API server. (3-4) Extract the address (prefecture) field from the user information obtained from the API server. (3-5) Extract the address (city, ward, town, or village) field from the user information obtained from the API server. (3-6) Extract the address (street number) field from the user information obtained from the API server. (4) Create a string to display the name from the last name and first name fields. (5) Create a character string for displaying an address from the prefecture, city / ward / town / village, and street address fields.
[0021] Among the above processes, the process from (1) to (2), the process from (3-2) and (3-3) to (4), and the process from (3-4) to (3-6) to (5) are executed in this order, but the other processes can be executed in any order to obtain the same processing results. In other words, the processes from (3-1) to (3-6), and the processes from (4) to (5) can each be executed in parallel.
[0022] In the first embodiment, the idea of the actor model, which is one type of distributed computing, is adopted, and subdivided processes are associated with actors in the actor model. An actor in the actor model performs the process specified in the received message, and sends a message specifying the process to be executed to the next actor. Serialization is not assumed for the process of the actor, and it can be executed in parallel.
[0023] By matching the subdivided processes to actors in the actor model and connecting the processes with data flows, the process of generating a display screen for user information can be represented by a tree structure, as shown in Figure 1, in which the subdivided processes are nodes and the information or process flows between the subdivided processes are edges.
[0024] By expressing a given process in a tree structure as in Figure 1, the structure of the process can be easily understood visually and intuitively. This makes it possible to prevent the program structure of the process from becoming too complicated.
[0025] In addition, when updating a program represented by a tree, it is possible to deal with it by, for example, adding, deleting, or changing nodes and edges on the tree without making major changes to the entire program. For example, in the example shown in FIG. 1, if a user wants to add an update of user information as an event that triggers the start of the generation process of user information for display, the user only needs to add a node that defines the corresponding process and an edge that defines the data flow to the tree as shown in FIG. 1 displayed on the user interface. With this operation, an update of user information can be added as an event that triggers the generation process of user information for display. Note that the process that is the target of managing the structure of a program in a tree structure is not limited to the generation process of user information for display. For example, if the process includes a process that can be executed in parallel as a part of the process, such as acquiring multiple pieces of information as input to a machine learning model and processing the information for input to the model, it can be the target of managing the structure of a program in a tree structure. The generation process of user information for display is an example of a "first process". Also, each of the processes (1)-(5) above is an example of a "multiple processes" included in the "first process".
[0026] FIG. 2 is a diagram illustrating an example of a hardware configuration of an information processing device 1. For example, it is a device that manages, in a tree structure, predetermined processes such as the generation process of the display user information described in Fig. 1. The information processing device 1 can be configured using an information processing device (computer) such as a personal computer (PC), a workstation (WS), a server machine, a smartphone, or a tablet terminal. The information processing device 1 may be a collection (cloud) of one or more computers.
[0027] The information processing device 1 includes, as its hardware configuration, a processor 101, a memory 102, an auxiliary storage device 103, a communication unit 104, an input device 105, and an output device 106. The memory 102 and the auxiliary storage device 103 are computer-readable recording media.
[0028] The auxiliary storage device 103 stores various programs and data used by the processor 101 when executing each program. The auxiliary storage device 103 is, for example, an EPROM, a hard disk drive, or an SSD. The programs held in the auxiliary storage device 103 include, for example, an operating system (OS), application programs, and program management programs.
[0029] The memory 102 is a storage device that provides the processor 101 with a storage area and a working area for loading programs stored in the auxiliary storage device 103, and is used as a buffer. The memory 102 includes, for example, semiconductor memories such as a Read Only Memory (ROM) and a Random Access Memory (RAM).
[0030] The processor 101 executes various processes by loading a program held in the auxiliary storage device 103 into the memory 102 and executing the program. The processor 101 is, for example, a CPU, a GPU, or a DSP (Digital Signal Processor). The number of processors 101 is not limited to one, and multiple processors may be provided. The processor 101 is an example of a "control unit."
[0031] The communication unit 104 is, for example, a network interface card (NIC) or an optical line interface, etc. Note that the communication unit 104 may be, for example, a wireless communication circuit that connects to a wireless network such as a wireless LAN.
[0032] The input device 105 is, for example, a keyboard, a mouse, a touch pad, etc. The input device 105 may be an audio input device such as a microphone. The output device 106 is, for example, a display, etc. The output device 106 may be an audio output device such as a speaker. Note that the hardware configuration of the information processing device 1 is not limited to that shown in FIG. 2. The information processing device 1 may be a device equipped with an electric circuit such as a dedicated FPGA (Field-Programmable Gate Array) or ASIC (Application Specific Integrated Circuit) that executes the corresponding process.
[0033] 3 is a diagram showing an example of the functional configuration of the information processing device 1. The information processing device 1 includes, as its functional configuration, a control unit 11, a tree structure information DB 12, an application program 13, and a node group 14. The control unit 11 is a functional component whose functions are performed by the processor 101 executing a program management program. The control unit 11 manages information held in a tree structure information DB 12, which will be described later. Hereinafter, the process in which tree structure information is held in the tree structure information DB 12 is referred to as a tree target process.
[0034] For example, when the control unit 11 receives a user operation for a display request of a tree of a program of a tree target process, the control unit 11 generates a corresponding tree according to information stored in the tree structure information DB 12 and displays it on a display. The tree is displayed, for example, as an image including a tree diagram generated based on the tree structure. For example, the control unit 11 may The control unit 11 accepts user operations for adding and deleting nodes and edges to and modifying nodes or edges in the tree, and reflects the changes in the tree structure information DB 12. Furthermore, when node information is added, deleted, or modified in the tree structure information DB 12, the control unit 11 creates, deletes, or updates the corresponding node, respectively.
[0035] The tree structure information DB 12 holds tree structure information for tree target processing. The tree structure information includes node information that defines each node and edge information that defines each edge. Details of the information held in the tree structure information DB 12 will be described later.
[0036] The application program 13 is an application program held in the auxiliary storage device 103. The application program 13 includes, for example, tree target processing as part of the processing of the program, and when the tree target processing is executed, the node group 14 of the corresponding tree target processing is started to execute the tree target processing.
[0037] The node group 14 is a collection of nodes when the subdivided processes for each tree-targeted process correspond to nodes in a tree structure. When a tree-targeted process is called by the application program 13, all nodes included in the tree-targeted process are started, and each node executes its respective process. In other words, the nodes can also be considered as processes. In this case, the node group 14 can also be considered as a collection of processes for each tree-targeted process. Also, the nodes can be considered as virtual nodes that execute subdivided processes of the tree-targeted process. Note that the functional configuration of the information processing device 1 shown in FIG. 3 is just an example, and the functional configuration of the information processing device 1 is not limited to the example shown in FIG. 3.
[0038] Fig. 4 is an example of node information. The node information is included in the tree structure information and is stored in the tree structure information DB 12. The node information is information that defines the nodes included in the tree of the target tree target process. In the example shown in Fig. 4, one record corresponds to one piece of node information, and one piece of node information corresponds to one node. In the example shown in Fig. 4, the node information includes fields for a node ID, a message recipient, an action, and a message destination.
[0039] The node ID field stores the identification information of the node. In FIG. 4, the identification information of the node is composed of the identification information of the layer in the tree structure and the identification information of the node. Note that the configuration of the identification information of the node is not limited to this, and for example, the identification information may be assigned randomly regardless of the layer. The identification information of the node is assigned by the control unit 11. However, it is not limited to this, and the user may specify the identification information of the node.
[0040] The message receiver field stores the identification information of the node that receives the message that is the condition for executing the action. The root of the tree, that is, the node that is the starting point of the tree target processing, is called from the application program 13, so the message receiver field corresponding to that node stores "application".
[0041] The action field stores the content of the process executed by the node. The message destination field stores the identification information of the node to which the message notifying completion of the process is sent. Since the terminal node of the tree outputs the process result to the application program 13 that called the process of the tree, the message destination field corresponding to the node stores the "calling application."
[0042] The values of the message receiver, action, and message sender fields are specified by the user. The values of the message sender and message destination fields are obtained by analyzing the destinations of one or more edges connected to the corresponding node, which are set on a program editing screen that displays a tree such as that shown in Figure 1. The value of the action field (processing content) is input by the user on the program editing screen.
[0043] For example, when a node and an edge are added or deleted by a user operation on a program editing screen displaying a tree as shown in Fig. 1, the control unit 11 adds or deletes the node information from the tree structure information DB 12. Also, when the processing content of the action of a node is changed, or the connection destination of an edge is changed, the control unit 11 reflects this in the content of the node information of the corresponding node in the tree structure information DB 12.
[0044] Fig. 4 shows node information corresponding to the tree of the display user information generation process shown in Fig. 1. The node information corresponding to node #1A indicates that node #1A transmits a message to node #2A when called by application program 13. Note that node #1A is the root node of the tree of the display user information generation process, and therefore does not perform any particular action. For the sake of convenience, in Fig. 4, the action field of node #1A displays the contents of the event for which node #1A is called.
[0045] The node information corresponding to node #2A indicates that, when node #2A receives a message from node #1A, it calls the API server to obtain user information data, and transmits the message to nodes #3A, 3B, 3C, 3D, 3E, and 3F. The node information corresponding to node #3A indicates that, when node #3A receives a message from node #2A, it obtains a user image from the user information data, and outputs a message to the application program 13. The node information corresponding to node #3B indicates that, when node #3B receives a message from node #2A, it obtains a surname from the user information data, and outputs a message to node #4A. The node information corresponding to node #3C indicates that, when node #3C receives a message from node #2A, it obtains a first name from the user information data, and outputs a message to node #4A. The node information corresponding to node #4A indicates that, when node #4A receives messages from nodes #3B and 3C, it arranges a character string indicating a first name next to a character string indicating a surname, obtains a surname and first name character string for display, and outputs a message to the application program 13.
[0046] In the first embodiment, each node transmits and receives a message indicating the completion of a process (action), and information is passed using a memory for passing information, etc. However, this is not limited to this, and instead of a message, information obtained as a result of processing may be passed between nodes.
[0047] FIG. 5 is an example of edge information. The edge information is included in the tree structure information and is stored in the tree structure information DB 12. The edge information is information that defines the edges included in the tree of the target tree target process. In the example shown in FIG. 5, one record corresponds to one piece of edge information, and one piece of edge information corresponds to one edge. In the example shown in FIG. 5, the edge information includes fields for an edge ID, a source node ID, and a destination node ID.
[0048] The edge ID field stores identification information of an edge. The identification information of an edge is assigned by the control unit 11. However, this is not limiting, and the user may specify the identification information of an edge.
[0049] In the first embodiment, an edge is represented by a one-way arrow. Therefore, the source node ID and destination node ID fields store identification information of the source node of the edge and identification information of the destination node of the edge, respectively. The values of the source node ID and destination node ID fields are obtained from the node connected to the edge, which is set on the editing screen of the program where the tree shown in FIG. 1 is displayed.
[0050] For example, when a node and an edge are added or deleted by a user operation on a program editing screen displaying a tree as shown in Fig. 1, the edge information is added or deleted from the tree structure information DB 12 by the control unit 11. Also, when a connection destination of an edge is changed, the control unit 11 reflects this in the content of the edge information of the corresponding edge in the tree structure information DB 12. Note that the information included in the node information and edge information is not limited to the examples shown in Figs. 4 and 5.
[0051] Fig. 6 is an example of a flowchart of node processing. Each node is started when the corresponding tree target processing is called from application program 13. A node is one of the functional components, and is executed by processor 101, but for convenience, the explanation will be given with the node as the subject. Also, the node that is the execution subject of the processing shown in Fig. 6 is called the target node.
[0052] In OP101, the target node determines whether or not a message indicating completion of processing has been received from another node specified in the node information of the target node in tree structure information DB 12. The target node remains in a standby state until messages have been received from all nodes specified in the node information of the target node in tree structure information DB 12 (NO in OP101). If messages have been received from all nodes specified in the node information of the target node in tree structure information DB 12 (YES in OP101), the process proceeds to OP102.
[0053] In OP102, the target node executes an action specified in the node information of the target node in the tree structure information DB 12. In OP103, the target node transmits a message indicating completion of processing to another node specified in the node information of the target node in the tree structure information DB 12. Thereafter, the processing shown in FIG. 6 ends.
[0054] For example, when the generation process of user information for display is called from the application program 13, nodes #1A to #4B defined in the node information shown in Fig. 4 are started. Each node independently executes the process shown in Fig. 6 according to the corresponding node information. As a result, for example, nodes #3A, 3B, 3C, 3D, 3E, and 3F that acquire target information from user information data execute processes in parallel.
[0055] Fig. 7 is an example of a flowchart of a tree display process of a tree target process. The process shown in Fig. 7 is executed repeatedly at a predetermined cycle, for example. The process shown in Fig. 7 is executed by the processor 101, but for convenience, the process will be described mainly with respect to the functional components. The same applies to the flowcharts subsequent to Fig. 7.
[0056] In OP201, the control unit 11 determines whether or not a request to display a tree of a tree object process has been input. The request to display a tree is input by a user operation. The request to display a tree is input, for example, when a menu for displaying a tree of a tree object process is selected, and when a menu for viewing or editing a program of a tree object process is selected.
[0057] When a request to display a tree of the tree target process has been input (OP201: YES), the process proceeds to OP202. When a request to display a tree of the tree target process has not been input (OP201: NO), the process shown in Fig. 7 ends.
[0058] In OP202, the control unit 11 creates a tree based on the tree structure information of the corresponding tree target process held in the tree structure information DB 12. In OP203, the control unit 11 outputs and displays the created tree on the display of the information processing device 1. Thereafter, the process shown in FIG. 7 ends.
[0059] 8 is an example of a flowchart of a change process for a tree of a tree object process. The process shown in FIG 8 is repeatedly executed while an editing screen of a program of the tree object process is displayed, for example.
[0060] In OP301, the control unit 11 determines whether or not a user operation for changing the tree of the tree object process being displayed has been input. If a user operation for changing the tree of the tree object process being displayed has been input (OP301: YES), the process proceeds to OP302. If a user operation for changing the tree of the tree object process being displayed has not been input (OP301: NO), the process shown in FIG. 8 ends.
[0061] In OP302, the control unit 11 judges whether the change to the input tree is the addition of a node and an edge, or the addition of an edge. If the change to the input tree is the addition of a node and an edge, or the addition of an edge (OP302: YES), the processing proceeds to OP303. If the change to the input tree is not the addition of a node and an edge, or the addition of an edge (OP302: NO), the processing proceeds to OP305.
[0062] In OP303, the control unit 11 registers the node information of the node added to the tree and the edge information of the edge, or the edge information of the edge added to the tree, in the tree structure information DB 12. In OP304, when a node is added to the tree, the control unit 11 generates a node based on the node information and adds it to the node group 14. After that, the processing shown in FIG. 8 ends.
[0063] In OP305, the control unit 11 judges whether the change to the input tree is the deletion of a node and an edge, or the deletion of an edge. If the change to the input tree is the deletion of a node and an edge, or the deletion of an edge (OP305: YES), the processing proceeds to OP306. If the change to the input tree is not the deletion of a node and an edge, or the deletion of an edge (OP305: NO), the processing proceeds to OP308.
[0064] In OP306, the control unit 11 deletes the node information of the node deleted from the tree and the edge information of the edge deleted from the tree, or the edge information of the edge deleted from the tree, from the tree structure information DB 12. In OP307, when a node is deleted from the tree, the control unit 11 deletes the node from the node group 14. Thereafter, the processing shown in FIG. 8 ends.
[0065] In OP308, the control unit 11 judges whether the change to the input tree is a change to a node and / or an edge. If the change to the input tree is a change to a node and / or an edge (OP308: YES), the process proceeds to OP309. If the change to the input tree is not a change to a node and / or an edge (OP308: NO), the process shown in FIG. 8 ends.
[0066] In OP309, the control unit 11 changes the node information of the nodes and / or edge information of the edges that have been changed in the tree to reflect the changes in the tree. If there is a change in a node in the tree, control unit 11 updates the corresponding node in node group 14 based on the updated node information. Then, the process shown in FIG. 8 ends.
[0067] For example, in the tree of the display user information generation process shown in FIG. 1, when node #1B and an edge from node #1B to node #2A are added (OP302: YES), node information of the added node #1B and edge information of the added edge are added to the tree structure information DB 12 (OP303), and a node corresponding to node #1B is generated and added to the node group 14 (OP304). The node information of the added node #1B indicates, for example, that when user information is updated from the application program 13 (message receiving source field "application"), the node #1B transmits a message to node #2A (message destination field "2A"). The edge information of the added edge indicates that the connection source node is node #1B and the connection destination node is node #2A. After that, for example, when user information is updated during the execution of the application program 13, the node group 14 corresponding to the display user information generation process is executed. In this way, in the first embodiment, if there is a change in the tree target processing, it is sufficient to reflect the change in the nodes and edges related to the change, and other nodes and edges do not need to be changed, so that the impact of the program update can be suppressed locally.
[0068] <Effects of the First Embodiment> In the first embodiment, the idea of distributed computing is incorporated into tree-based processing including processes that can be executed in parallel, and the idea of management in a tree structure is further incorporated, with subdivided processes corresponding to nodes and data or process flows between the subdivided processes corresponding to edges. This makes it possible to easily see the structure of a program for tree-based processing. Furthermore, when making changes to a program for tree-based processing, it is sufficient to make the changes to the nodes and edges related to the changes, and the changes can be made locally.
[0069] In addition, since each of the divided processes corresponding to a node is executed independently, some of the processes of the tree target process that can be executed in parallel are executed in parallel, thereby shortening the time required for executing the tree target process.
[0070] <Other embodiments> The above-described embodiment is merely an example, and the present disclosure can be modified and implemented as appropriate without departing from the spirit and scope of the present disclosure.
[0071] In the first embodiment, an example has been described in which the control unit 11 and tree structure information DB 12 that manage tree-targeted processing in a tree structure, the application program 13 that uses the tree-targeted processing, and the node group 14 of the tree-targeted processing are included in the same information processing device. However, this is not limited to this, and the control unit 11 and tree structure information DB 12 and the application program 13 and node group 14 may be included in different devices. For example, the control unit 11 and tree structure information DB 12 may be included in a device that operates as a server, and the application program 13 and node group 14 may be included in a user terminal. Also, the control unit 11 and the tree structure information DB 12 may be included in different devices.
[0072] The processes and means described in this disclosure can be freely combined and implemented as long as no technical contradiction occurs.
[0073] Furthermore, a process described as being performed by one device may be shared and executed by multiple devices. Alternatively, a process described as being performed by different devices may be executed by a single device. The hardware configuration (server configuration) used to achieve this can be flexibly changed.
[0074] The present disclosure can also be realized by supplying a computer program implementing the functions described in the above embodiments to a computer, and having one or more processors of the computer read and execute the program. Such a computer program may be provided to the computer by a non-transitory computer-readable storage medium connectable to the system bus of the computer, or may be provided to the computer via a network. Non-transitory computer-readable storage media include, for example, any type of disk, such as a magnetic disk (floppy disk, hard disk drive (HDD), etc.), an optical disk (CD-ROM, DVD disk, Blu-ray disk, etc.), a read-only memory (ROM), a random access memory (RAM), an EPROM, an EEPROM, a magnetic card, a flash memory, an optical card, and any type of medium suitable for storing electronic instructions. [Explanation of symbols]
[0075] 1. Information processing device 11 Control section 12 Tree structure information DB 13. Application Program 14. Node group 101 Processor 102 Memory 103...Auxiliary storage device 104 Communications Department 105 Input Device 106 Output device
Claims
1. a control unit that, for a first process including a plurality of processes, some of which can be executed in parallel, associates the plurality of processes with a plurality of nodes, acquires information indicating a tree structure in which information between the plurality of processes or a process flow is associated with edges connecting the plurality of nodes, and stores the information in a storage unit; When a message is input from another node connected to the plurality of nodes via a first edge, each of the plurality of nodes independently executes a corresponding one of the plurality of processes, and outputs a message to the other node connected to the plurality of nodes via a second edge, thereby executing the first process. Information processing device.
2. The control unit forms a tree corresponding to the first process based on information indicating the tree structure corresponding to the first process, and outputs the tree. The information processing device according to claim 1 .
3. The control unit is accepting a user operation for a change to the tree corresponding to the first process as a change to the first process; reflecting a change to the tree corresponding to the first process in information indicating the tree structure corresponding to the first process based on the user operation, thereby reflecting the change to the first process in the first process; The information processing device according to claim 2 .
4. the control unit stores, in the storage unit, information regarding other nodes connected to the first edge, the content of the associated process, and other nodes connected to the second edge, for each of the plurality of nodes, as information indicating the tree structure corresponding to the first process; The information processing device according to claim 1 .
5. The computer For a first process including a plurality of processes, some of which can be executed in parallel, acquiring information indicating a tree structure in which the plurality of processes are associated with a plurality of nodes and information between the plurality of processes or a process flow is associated with an edge connecting the plurality of nodes, and storing the information in a storage unit; When a message is input from another node connected to the plurality of nodes via a first edge, each of the plurality of nodes independently executes a corresponding one of the plurality of processes, and outputs a message to the other node connected to the plurality of nodes via a second edge, thereby executing the first process. method.
Citation Information
Patent Citations
Device and method for supporting creation of flow using visual programming tool
JP2020042679A
Conversion program and conversion method
JP2023084609A
Method for supporting constitution generation of application program
JP1997258975A