Architecture diagram generation method and architecture diagram construction system
By optimizing node layout and edge representation, the problem of node and edge intersection in the architecture graph was solved, improving visualization and user experience, and enhancing the smoothness of interactive operations.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- HUAWEI TECH CO LTD
- Filing Date
- 2024-09-26
- Publication Date
- 2026-05-15
AI Technical Summary
The existing architecture diagram has a large number of nodes and edges, which leads to the stacking and intersection of edges, causing visual interference for users and affecting the visualization effect.
By analyzing the connections between nodes, the node layout is optimized to make the core layer nodes denser than other layers, reducing edge intersections and stacking, using polylines to represent edges and adjusting the node arrangement order, and hiding or expanding nodes to adapt to user operations.
It improves the visualization of the architecture diagram, reduces the intersections of edges, enhances the user's visual experience, and improves the smoothness of interactive operations.
Smart Images

Figure CN2024121579_15052026_PF_FP_ABST
Abstract
Description
Architecture diagram generation methods and architecture diagram construction systems
[0001] This application claims priority to Chinese Patent Application No. 202311292034.8, filed with the China National Intellectual Property Administration on September 28, 2023, entitled "Method for Generating Architecture Diagrams and System for Building Architecture Diagrams", the entire contents of which are incorporated herein by reference. Technical Field
[0002] This application relates to the field of computer technology, and in particular to a method for generating architecture diagrams and an architecture diagram construction system. Background Technology
[0003] Architecture diagrams can show users entity information (e.g., business processes) and the relationships between entities. However, the more entities there are, and the more complex the relationships between them, the more nodes and edges there will be in the architecture diagram. This can easily lead to the stacking and intersection of edges, causing more visual clutter for the user.
[0004] Summary of the Invention
[0005] This application provides a method for generating architecture diagrams and an architecture diagram construction system, which can improve the visualization effect of architecture diagrams.
[0006] Firstly, this application provides a method for generating an architecture diagram. This method can be applied to an architecture diagram construction system. The architecture diagram construction system acquires multiple entity information and the relationships between these entity information, then generates an architecture diagram based on the multiple entity information and the relationships between them, and finally displays the architecture diagram. This architecture diagram is a multi-layered topology structure composed of multiple nodes and multiple edges. Each node in the architecture diagram indicates an entity information, and the edges in the architecture diagram indicate the relationships between the entity information indicated by the nodes at both ends of the edge. The nodes in the core layer of the architecture diagram are arranged according to their density; the density of the middle nodes in the core layer is higher than the density of the nodes on both sides. The density of a node depends on its degree and / or the number of cores. The nodes in other layers of the architecture diagram are arranged according to the arrangement position of the nodes in the core layer and the relationships between the entity information indicated by the nodes.
[0007] In the technical solution provided in this application, the architecture diagram construction system arranges the nodes with low density in the core layer on both sides of the nodes with high density, and arranges the nodes of other layers according to the nodes of the associated core layer, so that the layout of the nodes in the architecture diagram is more symmetrical, the average length of the edges in the architecture diagram is shorter and there are fewer intersections between the edges, thereby improving the user's visual experience and making the generated architecture diagram have a better visualization effect.
[0008] In one possible implementation of the first aspect, the architecture graph construction system generates an architecture graph based on multiple entity information and the relationships between them. This includes: determining multiple nodes and edges based on the entity information and their relationships; partitioning the edges between core layer nodes and nodes in other layers to obtain one or more connected components; determining the degree and / or core number of the core layer nodes based on the partitioned connected components; calculating the density of the core layer nodes based on their degree and / or core number; and finally determining the arrangement of the nodes based on their density to generate the architecture graph.
[0009] In one possible implementation of the first aspect, the plurality of nodes include a first node. Before the architecture diagram building system displays the architecture diagram, the architecture diagram building system also determines the position of the endpoints of the edges connected to the first node based on the relative positions of the first node and the other end nodes of its connected edges, as well as the number of edges connected to the first node. The endpoints of the edges connected to the first node are evenly distributed on one or more sides of the first node.
[0010] It should be understood that the first node may be connected to multiple edges. The architecture diagram building system determines the position of the endpoint of each edge on the first node based on the relative positions of the nodes at both ends of each edge, in order to reduce the intersection and overlap between the multiple edges connected to the first node. In addition, evenly distributing the endpoints of the edges connected to the first node on one or more sides of the first node further improves the user's visual experience, making the architecture diagram have a better visualization effect.
[0011] In one possible implementation of the first aspect, the aforementioned plurality of nodes further includes a second node, and the edge between the first node and the second node is a line segment or a polyline. After the architecture graph construction system determines the arrangement of the aforementioned plurality of nodes, if the edge between the first node and the second node is a polyline, the architecture graph construction system further determines the position of the inflection point of the edge between the first node and the second node based on the relative position of the first node and the second node.
[0012] In the above implementation, when the edges between nodes are represented by polylines, the architecture diagram construction system determines the position of the inflection point of the edges between nodes based on the relative positions of the nodes, so as to minimize the intersection and overlap between edges, achieve the purpose of visual noise reduction, and thus improve the visualization effect of the architecture diagram.
[0013] In one possible implementation of the first aspect, after the architecture diagram construction system determines the arrangement of the aforementioned multiple nodes, the system further adjusts the arrangement order of nodes in other layers. After the adjustment, the number of intersections between the edges connecting the nodes in other layers is less than the number before the adjustment. This achieves visual noise reduction, thereby improving the visualization effect of the architecture diagram.
[0014] In one possible implementation of the first aspect, the architecture diagram is an enterprise process architecture diagram, which is used to represent the relationships between enterprise processes.
[0015] In one possible implementation of the first aspect, the architecture diagram building system further receives user input of an operation to expand a third node in the architecture diagram, wherein the third node indicates a first entity among the aforementioned plurality of entity information, and the first entity information is associated with one or more lower-level entity information. Then, based on the operation of expanding the third node, the architecture diagram is updated, and the updated architecture diagram is displayed. The updated architecture diagram includes one or more child nodes associated with the third node, and the child nodes associated with the third node indicate entity information lower than the first entity information. The updating of the architecture diagram includes determining the arrangement position of the one or more child nodes associated with the third node, and adjusting the position of a fourth node in the architecture diagram so that the fourth node is not obscured by the child nodes associated with the third node when the updated architecture diagram is displayed.
[0016] Using the above implementation method, users can expand any one or more nodes in the architecture diagram according to their needs to obtain the lower-level entity information associated with the entity information indicated by the expanded node. In addition, some nodes and edges in the architecture diagram will also be adaptively adjusted according to the above expansion operation, so that there is no occlusion between nodes in the architecture diagram.
[0017] In one possible implementation of the first aspect, the architecture diagram building system further receives user input of an operation on the fifth node in a collapsed architecture diagram. The fifth node is associated with one or more child nodes, indicates a second entity among the aforementioned multiple entity information, the second entity information is associated with one or more lower-level entity information, and the child nodes associated with the fifth node indicate the entity information below the second entity information. Then, the architecture diagram building system updates the architecture diagram based on the operation on the collapsed fifth node and displays the updated architecture diagram. The updated architecture diagram hides the one or more child nodes associated with the fifth node. The updated architecture diagram includes determining the arrangement position of the fifth node after hiding the child nodes and adjusting the position of the sixth node in the architecture diagram.
[0018] Using the above implementation method, users can collapse nodes in the architecture diagram according to their needs to obtain the upper-level entity information associated with the entity information indicated by the collapsed node. In addition, some nodes and edges in the architecture diagram will also be adaptively adjusted according to the above collapse operation, so that the nodes in the architecture diagram are arranged more reasonably and aesthetically without collapsing each other.
[0019] In one possible implementation of the first aspect, the architecture graph construction system also receives user input of dragging a seventh node from a set of multiple nodes, and then hides the edges connecting other nodes in the architecture graph based on the dragging of the seventh node. The architecture graph construction system also receives user input of releasing the seventh node, and then displays the hidden edges based on the releasing of the seventh node.
[0020] With the above implementation, when a user drags a node in the architecture diagram, the diagram displays the edges connected to the dragged node and hides the edges connected to other nodes, allowing the user to focus more on the dragged node. Furthermore, since real-time rendering of the architecture diagram is required when a user drags a node, especially when the diagram contains a large number of nodes and edges, it consumes more resources and can easily lead to lag. The above implementation, however, hides the edges connected to other nodes when the user drags a node and redisplays them when the user releases the node. Therefore, it reduces the resources consumed in rendering the architecture diagram without affecting the user's viewing experience, thus improving the smoothness of the interactive operation.
[0021] In one possible implementation of the first aspect, nodes at different layers in the architecture diagram are represented using different primitives. Alternatively, edges between nodes at different layers in the architecture diagram are represented using different line segments or polylines. Alternatively, when edges in the architecture diagram are represented using polylines, the corners of these edges are rounded. Alternatively, the start and end points of any one of the multiple edges in the architecture diagram are represented using different primitives. Alternatively, the architecture diagram displays identifiers for multiple nodes, where the identifier for any one node includes the name and code of the corresponding entity information, and the name and code are displayed in segments. This achieves visual noise reduction, thereby improving the visualization effect of the architecture diagram.
[0022] Secondly, this application provides a method for displaying an architecture diagram. This method can be applied to an architecture diagram display system. The architecture diagram display system presents an architecture diagram to a user, wherein the architecture diagram is a multi-layered topology composed of multiple nodes and multiple edges. Each node in the architecture diagram indicates an entity, and the edges in the architecture diagram indicate the relationship between the entity information indicated by the nodes located at both ends of the edge. The architecture diagram display system also receives user input to expand a first node in the architecture diagram, wherein the first node indicates first entity information, and the first entity information is associated with one or more lower-level entity information. Then, based on the above-mentioned operation of expanding the first node, the arrangement position of one or more child nodes associated with the first node is determined, the position of a second node in the architecture diagram is adjusted, and the one or more child nodes associated with the first node are displayed, wherein the child nodes associated with the first node indicate entity information below the first entity information, and the second node after the position adjustment is not obscured by the child nodes associated with the first node.
[0023] In one possible implementation of the second aspect, the architecture diagram building system further receives user input regarding the operation of a third node in a collapsed architecture diagram. This third node is associated with one or more child nodes, indicates second entity information, the second entity information is associated with one or more lower-level entity information, and the child nodes associated with the third node indicate the entity information below the second entity information. Then, based on the aforementioned operation of collapsing the third node, the architecture diagram building system determines the position of the third node after hiding the one or more child nodes, adjusts the position of the fourth node in the architecture diagram, and hides the one or more child nodes associated with the third node.
[0024] In one possible implementation of the second aspect, the architecture diagram display system also receives user input indicating a drag-and-drop operation on the fifth node in the architecture diagram, and then hides the edges connected to other nodes in the architecture diagram based on the drag-and-drop operation. The architecture diagram display system also receives user input indicating a release operation on the fifth node, and then displays the hidden edges based on the release operation.
[0025] In one possible implementation of the second aspect, the above architecture diagram is an enterprise process architecture diagram, which is used to represent the relationships between enterprise processes.
[0026] In one possible implementation of the second aspect, before presenting the architecture diagram to the user, the system further partitions at least one edge from the aforementioned multiple nodes and multiple edges to obtain one or more connected components, wherein at least one edge is the edge between a node in the core layer and nodes in other layers of the architecture diagram. Then, based on the one or more connected components obtained from the partitioning, the degree and / or number of core nodes are determined, and the density of the core layer nodes is calculated based on the degree and / or number of core nodes. Finally, the arrangement of the aforementioned multiple nodes is determined based on the density of the core layer nodes to generate the aforementioned architecture diagram.
[0027] Thirdly, this application provides an architecture diagram construction system. The system includes an acquisition module, a layout module, and a visualization module. The acquisition module is used to acquire multiple entity information and the relationships between them. The layout module is used to generate an architecture diagram based on the multiple entity information and their relationships. The visualization module is used to display the architecture diagram. This architecture diagram is a multi-layered topology composed of multiple nodes and multiple edges. Each node in the architecture diagram indicates an entity, and the edges indicate the relationships between the entity information indicated by the nodes at both ends of the edge. Nodes in the core layer of the architecture diagram are arranged according to density, with the density of the middle nodes in the core layer being higher than that of the nodes on either side. The density of a node depends on its degree and / or the number of cores. Nodes in other layers of the architecture diagram are arranged according to the arrangement of the nodes in the core layer and the relationships between the entity information indicated by the nodes.
[0028] In one possible implementation of the third aspect, the layout module is used to determine multiple nodes and multiple edges based on multiple entity information and the relationships between entity information. Then, it divides the edges between the core layer nodes and the nodes of other layers to obtain one or more connected components. Based on the one or more connected components obtained by the division, it determines the degree and / or core number of the core layer nodes. Then, based on the degree and / or core number of the core layer nodes, it calculates the density of the core layer nodes. Finally, based on the density of the core layer nodes, it determines the arrangement position of the above multiple nodes and generates an architecture diagram.
[0029] In one possible implementation of the third aspect, the aforementioned plurality of nodes includes a first node. The visualization module is used to determine the position of the endpoints of the edges connected to the first node based on the relative positions of the first node and the other end nodes of its connected edges, and the number of edges connected to the first node, wherein the endpoints of the edges connected to the first node are evenly distributed on one or more sides of the first node.
[0030] In one possible implementation of the third aspect, the aforementioned plurality of nodes further includes a second node, and the edge between the first node and the second node is a line segment or a polyline. The layout module is also used to determine the position of the inflection point of the edge between the first node and the second node based on the relative position of the first node and the second node when the edge between the first node and the second node is a polyline.
[0031] In one possible implementation of the third aspect, the layout module is also used to adjust the arrangement order of nodes in other layers of the architecture diagram, so that the number of intersections between the edges connected to the nodes in other layers after the adjustment is less than the number before the adjustment.
[0032] In one possible implementation of the third aspect, the above architecture diagram is an enterprise process architecture diagram, which is used to represent the relationships between enterprise processes.
[0033] In one possible implementation of the third aspect, the architecture diagram construction system further includes an interaction module. The interaction module receives user input to expand a third node in the architecture diagram, where the third node indicates a first entity among the multiple entity information, and the first entity is associated with one or more lower-level entity information. The visualization module is further used to update the architecture diagram based on the operation of expanding the third node and to display the updated architecture diagram. The updated architecture diagram includes one or more child nodes associated with the third node, where the child nodes indicate entity information below the first entity information. Updating the architecture diagram includes determining the arrangement of the one or more child nodes associated with the third node and adjusting the position of a fourth node in the architecture diagram so that the fourth node is not obscured by the child nodes associated with the third node when the updated architecture diagram is displayed.
[0034] In one possible implementation of the third aspect, the interaction module is further configured to receive user input of an operation on the fifth node in the collapsed architecture diagram, wherein the fifth node is associated with one or more child nodes, the fifth node indicates the second entity information among the aforementioned multiple entity information, the second entity information is associated with one or more lower-level entity information, and the child node associated with the fifth node indicates an entity information below the second entity information. The visualization module is further configured to update the architecture diagram based on the operation on the collapsed fifth node and display the updated architecture diagram. The updated architecture diagram hides the one or more child nodes associated with the fifth node. The updated architecture diagram includes determining the arrangement position of the fifth node after hiding the child nodes and adjusting the position of the sixth node in the architecture diagram.
[0035] In one possible implementation of the third aspect, the interaction module is further configured to receive user input of dragging the seventh node in the architecture diagram, and to receive user input of releasing the seventh node. The visualization module is further configured to hide the edges connected to other nodes in the architecture diagram based on the aforementioned dragging of the seventh node, and to display the edges connected to the other nodes based on the aforementioned releasing of the seventh node.
[0036] In one possible implementation of the third aspect, nodes at different layers in the architecture diagram are represented using different primitives. Alternatively, edges between nodes at different layers in the architecture diagram are represented using different line segments or polylines. Alternatively, when edges in the architecture diagram are represented using polylines, the corners of these edges are rounded. Alternatively, the start and end points of any one of the multiple edges in the architecture diagram are represented using different primitives. Alternatively, the architecture diagram displays identifiers for multiple nodes, where the identifier for any one of the multiple nodes includes the name and code of the corresponding entity information, and the name and code are displayed in segments.
[0037] Fourthly, this application provides an architecture diagram display system. The system includes a visualization module and an interaction module. The visualization module presents an architecture diagram to the user, wherein the architecture diagram is a multi-layered topology composed of multiple nodes and multiple edges. Each node in the architecture diagram indicates an entity information, and the edges in the architecture diagram indicate the relationship between the entity information indicated by the nodes at both ends of the edge. The interaction module receives user input to expand a first node in the architecture diagram, wherein the first node indicates first entity information, and the first entity information is associated with one or more lower-level entity information. The visualization module is also used to determine the arrangement position of one or more child nodes associated with the first node based on the above-mentioned operation of expanding the first node, adjust the position of a second node in the architecture diagram, and display the one or more child nodes associated with the first node, wherein the child nodes associated with the first node indicate entity information below the first entity information, and the second node after position adjustment is not obscured by the child nodes associated with the first node.
[0038] In one possible implementation of the fourth aspect, the interaction module is further configured to receive user input of an operation on a third node in a collapsed architecture diagram, wherein the third node is associated with one or more child nodes, the third node indicates second entity information, the second entity information is associated with one or more lower-level entity information, and the child nodes associated with the third node indicate the entity information below the second entity information. The visualization module is further configured to, based on the aforementioned operation on the collapsed third node, determine the position of the third node after hiding the one or more child nodes, adjust the position of the fourth node in the architecture diagram, and hide the one or more child nodes associated with the third node.
[0039] In one possible implementation of the fourth aspect, the interaction module is further configured to receive user input of dragging the fifth node in the architecture diagram, and to receive user input of releasing the fifth node. The visualization module is further configured to hide the edges connected to other nodes in the architecture diagram based on the aforementioned dragging of the fifth node, and to display the edges connected to the other nodes based on the aforementioned releasing of the fifth node.
[0040] In one possible implementation of the fourth aspect, the above architecture diagram is an enterprise process architecture diagram, which is used to represent the relationships between enterprise processes.
[0041] In one possible implementation of the fourth aspect, the architecture diagram display system further includes a layout module. The layout module is used to partition the plurality of nodes and at least one edge from the plurality of edges to obtain one or more connected components, wherein the at least one edge is an edge between nodes in the core layer of the architecture diagram and nodes in other layers. The layout module is also used to determine the degree and / or core number of nodes in the core layer of the architecture diagram based on the one or more connected components obtained from the partitioning, then calculate the density of the nodes in the core layer based on the degree and / or core number of the nodes in the core layer, and finally determine the arrangement positions of the plurality of nodes based on the density of the nodes in the core layer to generate the architecture diagram.
[0042] Fifthly, this application provides a computing device. The computing device includes a processor and a memory. The processor is used to execute instructions stored in the memory to implement some or all of the methods described in the first aspect and any implementation thereof, and the second aspect and any implementation thereof.
[0043] Sixthly, this application provides a computing device cluster. The computing device cluster includes at least one computing device, each computing device including a processor and a memory. The processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device, causing the computing device cluster to perform some or all of the methods described in the first aspect and any implementation thereof, and the second aspect and any implementation thereof.
[0044] In a seventh aspect, this application provides a computer program product. This computer program product may be a software or program product containing instructions that can run on a computing device or be stored on any available medium. When the computer program product runs on a computing device or a cluster of computing devices, it causes the computing device or the cluster of computing devices to perform some or all of the methods described in the first aspect and any implementation thereof, and the second aspect and any implementation thereof.
[0045] Eighthly, this application provides a computer-readable storage medium. The computer storage medium includes computer program instructions that, when executed by a computing device or cluster of computing devices, cause the computing device or cluster of computing devices to perform some or all of the methods described in the first aspect and any implementation thereof, and the second aspect and any implementation thereof. Attached Figure Description
[0046] Figure 1 is a schematic diagram of an architecture diagram construction system provided in an embodiment of this application;
[0047] Figure 2 is a schematic diagram of an application scenario provided by an embodiment of this application;
[0048] Figures 3A-3F are schematic diagrams of a user interface provided in an embodiment of this application;
[0049] Figure 4 is a schematic diagram of an architecture diagram generation method provided in an embodiment of this application;
[0050] Figure 5 is a schematic diagram of determining the arrangement position of each node in the architecture diagram according to an embodiment of this application;
[0051] Figure 6 is a schematic diagram of determining the inflection point position of an edge between nodes on the same layer according to an embodiment of this application;
[0052] Figure 7 is a schematic diagram of an architecture display system provided in an embodiment of this application;
[0053] Figure 8 is a schematic diagram of the structure of a computing device provided in an embodiment of this application;
[0054] Figure 9 is a schematic diagram of the structure of a computing device cluster provided in an embodiment of this application;
[0055] Figure 10 is a schematic diagram of another computing device cluster provided in an embodiment of this application. Detailed Implementation
[0056] The technical solution provided in this application will now be described with reference to the accompanying drawings.
[0057] An architecture diagram is a topological structure composed of multiple nodes and edges. Each node in an architecture diagram represents an entity, and each edge indicates the relationship between the entities represented by the nodes at its ends. Therefore, an architecture diagram can present entity information and the relationships between them to the user. In practical applications, the more entities there are and the more complex the relationships between them, the more nodes and edges will appear in the architecture diagram. This can easily lead to edge stacking and intersections, causing more visual clutter for the user.
[0058] For example, in enterprise management and operations, an architecture diagram (also known as an "enterprise process architecture diagram") can be used to present enterprise processes and the relationships between them to users, facilitating their understanding, management, and maintenance of these processes. An enterprise process refers to a set of standardized business operation rules and mechanisms within an enterprise. In an enterprise process architecture diagram, each node indicates a process architecture, and each edge indicates the integration relationship between the process architectures at its two ends. A process architecture is a structured overall framework for enterprise processes, describing the classification, hierarchy, boundaries, scope, input / output relationships, etc., reflecting the enterprise's operating model and business characteristics. Furthermore, large process architectures can be further subdivided to form multiple lower-level process architectures; that is, one process architecture can be associated with multiple lower-level process architectures. Therefore, enterprises typically have a large number of low-level process architectures, and the relationships between these low-level architectures are highly complex. Consequently, enterprise process architecture diagrams include a large number of nodes and edges. It should be understood that when the number of nodes and edges in the diagram is large, edges can easily overlap and intersect, causing significant visual interference for the user.
[0059] To address the aforementioned issues, this application provides an architecture diagram construction system. This system analyzes the connections between nodes in the architecture diagram to arrange the positions of each node, resulting in a symmetrical layout of nodes and reducing edge stacking and intersections, thereby improving the visualization effect of the architecture diagram.
[0060] Figure 1 shows a schematic diagram of an architecture diagram building system provided in an embodiment of this application. It should be understood that Figure 1 is merely an exemplary illustration of one way to divide the structure of an architecture diagram building system. In practical applications, the structure of an architecture diagram building system can also be divided in other ways, and this embodiment does not impose specific limitations. As shown in Figure 1, the architecture diagram building system 100 includes an acquisition module 101, a layout module 102, and a visualization module 103. Optionally, the architecture diagram building system 100 may further include an interaction module 104.
[0061] The acquisition module 101 is used to acquire multiple entity information and the relationships between them. Specifically, the acquisition module 101 can acquire multiple entity information and their relationships from a database, or it can acquire multiple entity information and their relationships based on user input (e.g., an administrator user). Entity information can be related to entities with hierarchical information, such as process architecture information (e.g., process architecture code and name), organizational unit information (e.g., department name), directory information (e.g., directory code and name), etc. The relationships between entity information include hierarchical relationships and / or integration relationships. Hierarchical relationships refer to the superior-subordinate or parent-child relationships between entity information, while integration relationships refer to the input / output relationships between entity information. The acquisition module 101 is also used to send the acquired multiple entity information and their relationships to the layout module 102.
[0062] The layout module 102 is used to generate an architecture diagram based on multiple entity information and the relationships between them. Specifically, the layout module 102 determines multiple nodes and multiple edges based on the multiple entity information and their relationships. Each node indicates one entity among the multiple entity information, and each edge indicates the relationship between the entity information indicated by the nodes at both ends of the edge. The layout module 102 partitions at least one edge among the multiple nodes and edges to obtain one or more connected components. The at least one edge is the edge between a core layer node and nodes in other layers of the architecture diagram. The core layer nodes can be user-specified or set by the layout module 102. Then, the layout module 102 determines the degree and / or core count of the core layer nodes based on the one or more connected components obtained from the partitioning, and calculates the density of the core layer nodes based on their degree and / or core count. Subsequently, the layout module 102 determines the arrangement positions of the aforementioned nodes based on the density of the nodes in the core layer, generating an architecture diagram. In this diagram, the nodes in the core layer are arranged according to their density, with the density of the middle nodes in the core layer being higher than that of the nodes on either side. The nodes in other layers are arranged according to the arrangement positions of the nodes in the core layer and the relationships between the entity information indicated by the nodes. The layout module 102 is also used to send the generated architecture diagram to the visualization module 103.
[0063] The visualization module 103 is used to display the architecture diagram generated by the layout module 102. It should be understood that, as can be seen from the aforementioned function of the layout module 102, the nodes in the architecture diagram generated by this module are laid out symmetrically, resulting in shorter average lengths of edges and fewer intersections between edges, thus providing a better visual experience for the user.
[0064] Optionally, the visualization module 103 is also used to optimize the architecture diagram generated by the layout module 102 and to display the optimized architecture diagram. It should be understood that the optimized architecture diagram has a better visual effect and is easier for users to observe.
[0065] Optionally, the optimizations of the architecture diagram by the visualization module 103 include any one or more of the following:
[0066] ① Configure different primitives for nodes at different layers in the architecture diagram.
[0067] ② Display the identifiers of the above multiple nodes in the architecture diagram. The identifier of any node includes the name and code of the corresponding entity information, and the name and code are displayed in segments.
[0068] ③ Configure the edges in the architecture diagram as line segments or polylines. The position of the inflection point of the polyline can be determined by the layout module 102. The position of the inflection point of the polyline refers to the relative position of the inflection point of the polyline to the nodes at both ends of the polyline.
[0069] ④ Configure the edges between nodes in different layers of the architecture diagram as different line segments and / or polylines.
[0070] ⑤ When the architecture diagram includes edges represented by polylines, set the corners of the edges to rounded corners.
[0071] ⑥ Configure different primitives for the start and end points of any one of the multiple edges in the architecture graph.
[0072] ⑦ Distribute the endpoints of the connecting edges on any one of the multiple nodes evenly on one or more sides of that node.
[0073] In some embodiments, the architecture diagram building system 100 may also include an interaction module 104.
[0074] The interaction module 104 is used to receive user input on the architecture diagram and send the user's input to the visualization module 103. Accordingly, the visualization module 103 is also used to update the architecture diagram according to the user's input and to display the updated architecture diagram.
[0075] Optionally, the current architecture diagram includes node a, which indicates the first entity information among the aforementioned multiple entity information, and the first entity information is associated with one or more lower-level entity information. Then, the interaction module 104 can receive the user's input to expand node a, and then send the operation to the visualization module 103. The visualization module 103 updates the architecture diagram according to the operation to expand node a and displays the updated architecture diagram. Compared to the architecture diagram before the update, the updated architecture diagram includes one or more child nodes associated with node a, wherein the child nodes associated with node a indicate the entity information below the first entity information. Furthermore, the position of node b in the architecture diagram has been adjusted, and the adjusted node b is not obscured by the child nodes associated with node a.
[0076] Optionally, the current architecture diagram includes child nodes associated with node c, where the child nodes associated with node c indicate the lower-level entity information associated with the second entity information among the aforementioned multiple entity information. Then, the interaction module 104 can also receive user input to fold node c, and then send the operation of folding node c to the visualization module 103. The visualization module 103 updates the architecture diagram according to the operation of folding node c and displays the updated architecture diagram. The updated architecture diagram hides the child nodes associated with node c, and the position of node d in the architecture diagram is adjusted, making the arrangement of nodes in the architecture diagram more aesthetically pleasing.
[0077] Therefore, it can be seen that the architecture diagram construction system 100 provided in this application embodiment can support users to expand or collapse any node in the architecture diagram, that is, users can flexibly define the level of detail of the entity information displayed in the architecture diagram according to their needs. Moreover, when expanding or collapsing, other nodes and edges in the architecture diagram will also be adaptively adjusted, making the updated architecture diagram more aesthetically pleasing.
[0078] Optionally, the current architecture diagram includes node e. Then, the interaction module 104 can also receive user input indicating that node e is dragged, and then send this drag-and-drop operation to the visualization module 103. The visualization module 103 updates the architecture diagram based on the drag-and-drop operation and displays the updated architecture diagram, wherein the updated architecture diagram hides the edges connecting other nodes in the original diagram. Further, the interaction module 104 can also receive user input indicating that node e is released, and then send this release operation to the visualization module 103. The visualization module 103 updates the architecture diagram again based on the release operation and displays the updated architecture diagram, wherein the updated architecture diagram redisplays the previously hidden edges.
[0079] It should be understood that when a user drags a node in the architecture diagram, the visualization module 103 hides the edges connecting other nodes in the diagram. This not only allows the user to focus on the dragged node during the dragging process but also reduces the rendering cost of the architecture diagram and improves the smoothness of the interaction. When the user releases the dragged node, the visualization module 103 redisplays the hidden edges, thus not affecting the user's observation of other nodes.
[0080] In this embodiment of the application, the architecture diagram construction system 100 can be a software system, a hardware device, or a combination of a software system and a hardware device.
[0081] When the architecture diagram building system 100 is a software system, it can be deployed in a data center within a cloud environment. For example, it can be a cloud service provided by a cloud service provider. Specifically, the architecture diagram building system 100 can be deployed independently on a single computing instance within the cloud environment's data center, or distributed across multiple computing instances within the same data center. These computing instances include servers, virtual machines, and containers. As shown in Figure 2, the architecture diagram building system 100 is deployed in a cloud environment's data center and abstracted as a cloud service by the cloud service provider. Administrators can log in to the cloud platform via a client webpage, select and purchase the cloud service corresponding to the architecture diagram building system 100, and after successful purchase, provide the system with multiple entity information and relationships between them. When ordinary users want to view the architecture diagram, they log in to the cloud platform via a local client webpage and operate the architecture diagram building system 100 to generate, optimize, and display the optimized architecture diagram. Furthermore, ordinary users can also perform interactive operations such as expanding, collapsing, or dragging nodes in the architecture diagram, and view the updated architecture diagram.
[0082] The architecture diagram building system 100 can also be deployed on terminal devices. For example, the architecture diagram building system 100 is source code or components that can run on one or more terminal devices. Terminal devices include terminal servers, desktop computers, smartphones, laptops, tablets, etc. In one possible deployment method, the acquisition module 101 and layout module 102 in the architecture diagram building system 100 are deployed on a backend server, and the visualization module 103 and interaction module 104 are deployed on a frontend server. For the user, when the user wants to view the architecture diagram, the backend server generates the architecture diagram based on the obtained multiple entity information and the relationships between the entity information, and returns the generated architecture diagram to the frontend server. Furthermore, the frontend server can also optimize the architecture diagram and present the optimized architecture diagram to the user. Even further, the user can also perform interactive operations such as expanding, collapsing, or dragging nodes in the architecture diagram through the frontend server. The frontend server will update the architecture diagram based on the above interactive operations and present the updated architecture diagram to the user.
[0083] The architecture diagram building system 100 can also be deployed in a distributed manner in different environments, including terminal devices and data centers in cloud environments. For example, the acquisition module 101 and layout module 102 of the architecture diagram building system 100 can be deployed in a data center in a cloud environment, while the visualization module 103 and interaction module 104 can be deployed on terminal devices.
[0084] The following description of the architecture diagram construction system 100, based on the scenarios depicted in Figures 3A-3E, is from the user's perspective.
[0085] This embodiment uses an enterprise process architecture diagram as an example. Through the enterprise process architecture diagram, users can understand the relationship between enterprise processes, such as the hierarchy, classification, and boundaries / scope of enterprise processes, as well as the integration relationship between enterprise processes.
[0086] As shown in Figure 3A, the architecture diagram building system 100 provides a user interface, which includes a toolbar, a directory bar, and a display bar. The toolbar includes editing tools for the architecture diagram, such as undo, redo, refresh, favorite, and download buttons. The directory bar displays relevant information about enterprise processes, specifically including the code, name, and hierarchy information of the corresponding process architecture. For example, the process architecture information in the directory bar shown in Figure 3A includes: code 1.0, name "Integrated Product Development"; code 2.0, name "Management Finance"; code 3.0, name "Management Business Change and Information Technology (Management BT&IT)"; code 4.0, name "Channel Sales"; and code 5.0, name "Carrier Business CRM". The display bar presents the architecture diagram to the user.
[0087] As shown in Figure 3B, when a user focuses on the relevant business processes of "Managing Finance," the user can click on "2.0 Managing Finance" in the directory bar. Correspondingly, the architecture diagram building system 100 detects the click operation on "2.0 Managing Finance" in the directory bar and, in response to this operation, displays the architecture diagram shown in Figure 3B in the display bar. For ease of description, the node indicating "Integrated Product Development" in the architecture diagram will be referred to as Node 1.0, the node indicating "Managing Finance" as Node 2.0, the node indicating "Managing BT&IT" as Node 3.0, the node indicating "Channel Sales" as Node 4.0, and the node indicating "Carrier Business CRM" as Node 5.0. And so on, other nodes in the architecture diagram will be described in the same way.
[0088] As shown in Figure 3B, the architecture diagram includes nodes 1.0 to 5.0, as well as the edges between these five nodes. Through this architecture diagram, users can understand the enterprise processes related to "managing finance" including "integrated product development", "managing BT&IT", "channel sales" and "carrier business CRM", as well as the integration relationships between these five enterprise processes.
[0089] Optionally, the architecture diagram may also include multiple child nodes associated with node 2.0 (i.e., nodes 2.1 to 2.7), thereby facilitating users to understand the relevant information of the enterprise processes under "Management Finance". For example, the following process architecture information is shown in Figure 3B: coded as 2.1, named "Management Planning Budget Forecasting"; coded as 2.2, named "Management Carrier Business Finance"; coded as 2.3, named "Management Enterprise Business Finance"; coded as 2.4, named "Management Product Finance"; coded as 2.5, named "Management Pricing"; coded as 2.6, "Management Accounting and Reporting"; coded as 2.7, named "Management Cloud Computing Business Finance".
[0090] As shown in Figure 3C, when a user wants to further view "Management Pricing" under "Management Finance," the user can click node 2.5 in the architecture diagram shown in Figure 3B. Correspondingly, the architecture diagram building system 100 detects the click operation on node 2.5 and, in response, displays the architecture diagram shown in Figure 3C in the display bar. It should be noted that the directory bar is hidden in the user interface shown in Figure 3C for easier display of the architecture diagram.
[0091] As shown in Figure 3C, the architecture diagram adds nodes 2.5.1 to 2.5.6, as well as the edges between these new nodes and other nodes. Users can use this architecture diagram to understand information about the enterprise processes under "Managing Pricing," such as the following process architecture information shown in Figure 3C: Code 2.5.1, named "Managing Business Model and Pricing Rules"; Code 2.5.2, named "Managing Product Pricing"; Code 2.5.3, named "Managing Model / Price / Price Authorization"; Code 2.5.4, named "Managing Listing Pricing"; Code 2.5.5, named "Managing Pricing Review and Forecasting"; Code 2.5.6, named "Managing Operational Pricing." In addition, users can also understand the integration relationships between the enterprise processes under "Managing Pricing" and other enterprise processes. It should be understood that although the number of nodes and edges in the architecture diagram shown in Figure 3C is relatively large, the layout of nodes and edges is symmetrical, the direction of the edges is clear, there is no overlap between the edges, and the number of intersections is also very small. The relevant information of the enterprise process indicated by the nodes is also relatively clear, which allows users to better understand the enterprise process and the relationship between the enterprise processes through this architecture diagram.
[0092] As shown in Figure 3D, when a user wants to further view "Management Accounting and Reporting," the user can expand node 2.6 in the architecture diagram shown in Figure 3C. Correspondingly, the architecture diagram building system 100 detects the expansion operation on node 2.6 and, in response, displays the architecture diagram shown in Figure 3D in the display bar. It should be noted that, for ease of displaying this architecture diagram, the user interface shown in Figure 3D also hides the directory bar.
[0093] As shown in Figure 3D, the architecture diagram adds nodes 2.6.1 and 2.6.2, as well as the edge between these new nodes and node 2.5.6, while hiding the edge between nodes 2.6 and 2.5.6. Based on this architecture diagram, users can understand the relevant information of the enterprise processes under "Management Accounting and Reporting," such as the information of the following process architecture shown in Figure 3D: coded as 2.6.1, named "Inventory Accounting"; coded as 2.6.2, named "Management Operations Reporting Accounting." Furthermore, users can also understand the integration relationship between the enterprise processes under "Management Accounting and Reporting" and "Management Operations Pricing." In addition, because the position of node 2.4 was adaptively adjusted when displaying nodes 2.6.1 and 2.6.2, node 2.4 is not obscured by nodes 2.6.1 and 2.6.2, allowing users to clearly observe the enterprise processes indicated by each node in the architecture diagram and the relationships between these processes.
[0094] Furthermore, the user can also collapse node 2.6 in the architecture diagram shown in Figure 3D. Accordingly, the architecture diagram building system 100 detects the collapse operation on node 2.6 and, in response to this operation, displays the architecture diagram shown in Figure 3C in the display bar. In this way, the user can view the relationship between the enterprise processes indicated by node 2.5.6 and the enterprise processes indicated by node 2.6, to understand the enterprise processes indicated by node 2.5.6 from a higher-level perspective.
[0095] As shown in Figure 3E, the user can also drag node 5.0 in the architecture diagram shown in Figure 3D. Correspondingly, the architecture diagram building system 100 detects the drag operation on node 5.0 and, in response, displays the architecture diagram shown in Figure 3E in the display bar. As can be seen from Figure 3E, during the dragging of node 5.0, the architecture diagram does not display the edges connecting other nodes. However, because the architecture diagram displays the edges connecting node 5.0, the user can still observe the edges connecting node 5.0 during the dragging process, thus understanding the enterprise processes related to "Carrier Business CRM" and the integration relationships between these enterprise processes.
[0096] As shown in Figure 3F, the user can also release node 5.0. Correspondingly, the architecture diagram building system 100 detects the release operation on node 5.0 and, in response, displays the architecture diagram shown in Figure 3F in the display bar. As can be seen from Figure 3F, after releasing node 5.0, the architecture diagram displays the previously hidden edges, thus not affecting the user's observation of the enterprise processes indicated by other nodes. It should be noted that, for the convenience of displaying the architecture diagram, the user interface shown in Figures 3E and 3F hides the directory bar.
[0097] It should be understood that Figures 3A-3F are merely illustrative descriptions of one application scenario of the architecture diagram building system 100. In practical applications, the architecture diagram building system 100 can also be applied to various other scenarios. For example, the architecture diagram generated by the architecture diagram building system 100 can also be an organizational chart, used to present the organizational structure and functional relationships of an enterprise to users. As another example, the architecture diagram generated by the architecture diagram building system 100 can also be an architecture diagram about a network directory, used to present a network directory to users, facilitating their search and browsing of the information they need.
[0098] The following description, in conjunction with the flowchart of the architecture diagram generation method shown in Figure 4, further describes the functions of the architecture diagram construction system 100.
[0099] S101: Architecture diagram building system 100 obtains information on multiple entities and the relationships between them.
[0100] The description of entity information and the relationships between entity information can be found in the previous text and will not be repeated here.
[0101] Specifically, the architecture diagram construction system 100 can obtain information on multiple entities and the relationships between them in any of the following ways:
[0102] Method 1: Architecture Diagram Construction System 100 obtains information on multiple entities and the relationships between them from the database.
[0103] Specifically, the database stores multiple entity information and the relationships between them. The architecture diagram building system 100 can access this database to obtain multiple entity information and the relationships between them.
[0104] Method 2: Architecture Diagram Construction System 100 receives user (e.g., administrator user) input operations and obtains multiple entity information and the relationships between entity information based on the user input operations.
[0105] Specifically, the architecture diagram building system 100 provides access interfaces, such as application programming interfaces (APIs) and graphical user interfaces (GUIs). Users can upload file packages to the architecture diagram building system 100 through these interfaces. These file packages contain multiple entity information and relationships between entities. Upon receiving the uploaded file package, the architecture diagram building system 100 can parse it to obtain the multiple entity information and their relationships. Furthermore, users can also create multiple entity information and their relationships on the architecture diagram building system 100 through this access interface, enabling the architecture diagram building system 100 to obtain the multiple entity information and their relationships.
[0106] S102: Architecture diagram building system 100 generates an architecture diagram based on multiple entity information and the relationships between entity information.
[0107] Specifically, the architecture diagram building system 100 generates an architecture diagram based on multiple entity information and the relationships between entity information, which may include the following steps:
[0108] Step 1: Architecture Diagram Construction System 100 determines multiple nodes and multiple edges based on multiple entity information and the relationships between entity information.
[0109] In this context, each of the multiple nodes indicates one entity from the multiple entity information, and each of the multiple edges indicates the relationship between the entity information indicated by the nodes at both ends of the edge.
[0110] Step 2: Architecture Graph Construction System 100 divides the above-mentioned multiple nodes and multiple edges to obtain one or more connected components.
[0111] Specifically, the architecture graph construction system 100 partitions the aforementioned plurality of nodes and at least one of the aforementioned plurality of edges to obtain one or more connected components. The aforementioned plurality of nodes includes nodes in the core layer and nodes in non-core layers (i.e., nodes in other layers). The nodes in the core layer and nodes in other layers can be specified by the user or dynamically set by the architecture graph construction system 100 according to actual circumstances. For example, nodes corresponding to the entity information the user wants to observe can be used as nodes in the core layer. The aforementioned at least one edge is the edge between a node in the core layer and a node in another layer.
[0112] Step 3: Architecture Diagram Construction System 100 determines the degree and / or number of core layer nodes based on one or more connected components obtained from the partitioning.
[0113] Specifically, taking a connected component as an example, the architecture graph construction system 100 determines the degree of the nodes in the core layer of the connected component. The architecture graph construction system 100 partitions the connected component to obtain at least one k-core graph, thereby determining the number of cores of the nodes in the core layer of the connected component. The number of cores of the nodes in the core layer of the connected component is the k value corresponding to the largest k-core graph in which the node is located. The largest k-core graph is the k-core graph with the largest k value.
[0114] It should be understood that the above method describes how the architecture graph construction system 100 determines the degree and number of core nodes in a connected component. In practical applications, when multiple connected components are obtained by step 2 above, the architecture graph construction system 100 can also use the above method to determine the degree and number of core nodes in other connected components, thereby obtaining the degree and number of core nodes of all nodes in the core layer.
[0115] Step 4: Architecture Diagram Construction System 100 calculates the density of nodes in the core layer based on the degree and / or number of cores of the nodes in the core layer.
[0116] Specifically, when the architecture graph construction system 100 calculates the density of nodes in the core layer based on the degree of the nodes, the density of nodes in the core layer is the degree of the nodes. When the architecture graph construction system 100 calculates the density of nodes in the core layer based on the number of cores of the nodes, the density of nodes in the core layer is the number of cores of the nodes. When the architecture graph construction system 100 calculates the density of nodes in the core layer based on both the degree and the number of cores of the nodes, the density of nodes in the core layer can be a weighted average of the degree and the number of cores of the nodes.
[0117] Step 5: Architecture Diagram Construction System 100 determines the arrangement of the above-mentioned multiple nodes based on the density of the nodes in the core layer, and generates an architecture diagram.
[0118] Specifically, the architecture diagram construction system 100 determines the arrangement of nodes in the core layer based on the density of the nodes, wherein the density of the middle nodes in the core layer is higher than that of the nodes on both sides. Then, the architecture diagram construction system 100 determines the arrangement of nodes in other layers based on the relationship between the arrangement of nodes in the core layer and the entity information indicated by the nodes.
[0119] In some embodiments, the architecture graph construction system 100 determines the arrangement position of the core layer nodes based on the density of the core layer nodes. This includes: taking a connected component as an example, the architecture graph construction system 100 arranges the core layer nodes in the connected component from the middle outwards in descending order of density, such that the density of the middle node in the core layer of the connected component is higher than the density of the nodes on both sides. It should be understood that when multiple connected components are obtained in step 2, the architecture graph construction system 100 can also determine the arrangement position of the core layer nodes in other connected components using the above method, which will not be described in detail here.
[0120] In some embodiments, the architecture graph construction system 100 determines the arrangement of nodes in other layers based on the relationship between the arrangement of nodes in the core layer and the entity information indicated by the nodes. This includes: taking a node in another layer (assuming it is node n) as an example, the architecture graph construction system 100 determines the nodes in the core layer connected to node n (assuming it is node m) based on the relationship between the entity information indicated by the nodes, wherein the number of nodes m can be one or more. Then, the architecture graph construction system 100 determines the arrangement of node n based on the arrangement of node m, wherein the arrangement of node n can be as close as possible to the arrangement of node m, so that the edge between node n and node m is short. It should be understood that the architecture graph construction system 100 can also determine the arrangement of other nodes in other layers using the above method, which will not be described in detail here.
[0121] By using steps 1-5 above, nodes with high density belonging to the core layer in the connected component can be arranged in the middle, nodes with low density can be arranged on both sides, and nodes in other layers can be arranged close to the nodes in the core layer they are connected to. This makes the layout of nodes in the connected component more symmetrical, further reduces the intersection points between edges in the connected component and the average length of the edges, and improves the visual effect of the entire architecture diagram.
[0122] For example, taking the architecture diagram shown in Figure 3C above as an example, this describes how the architecture diagram construction system 100 determines the arrangement of each node in the architecture diagram.
[0123] The nodes are Node 1.0, Node 3.0, Node 4.0, Node 5.0, the child nodes associated with Node 2.0 (i.e., Nodes 2.1 to 2.7), and the child nodes associated with Node 2.5 (i.e., Nodes 2.5.1 to 2.5.6). Among these nodes, the core layer nodes include Nodes 2.5.1 to 2.5.6, and the remaining nodes are nodes from other layers.
[0124] As shown in Figure 5, the architecture graph construction system 100 obtains the graph shown in Figure 5(a) based on the edges between the nodes of the core layer and the nodes of other layers. Then, the graph is divided into two connected components, namely connected component A and connected component B shown in Figure 5(b). Afterwards, connected component A and connected component B are processed separately. Specifically,
[0125] For connected component A: In connected component A, the degree of node 2.5.1 is determined to be 1. Partitioning connected component A yields a 1-core graph (i.e., connected component A). In the 1-core graph, the core number of node 2.5.1 is 1. Therefore, the compactness of node 2.5.1 is 1.
[0126] For connected component B: In connected component B, the degrees of nodes 2.5.2 to 2.5.6 are determined to be 2, 1, 2, 3, and 7, respectively. Connected component B is then partitioned to obtain the 1-core and 2-core graphs shown in Figure 5(c). In the 2-core graph, nodes 2.5.2, 2.5.5, and 2.5.6 all have a core count of 2. In the 1-core graph, nodes 2.5.3 and 2.5.4 both have a core count of 1. Therefore, the density of nodes 2.5.2 to 2.5.6 is 2, 1, 1.5, 2.5, and 4.5, respectively. Accordingly, the arrangement order of the core layer nodes in connected component B can be node 2.5.2, node 2.5.5, node 2.5.6, node 2.5.4, and node 2.5.3, respectively.
[0127] Based on the arrangement order of the core layer nodes in connected components A and B, the arrangement order of the core layer nodes in the architecture diagram can be as follows: node 2.5.1, node 2.5.2, node 2.5.5, node 2.5.6, node 2.5.4, and node 2.5.3. It should be noted that in this embodiment, the node density is calculated based on the average of the node's degree and the number of cores.
[0128] Next, the architecture diagram construction system 100 determines the arrangement of nodes in other layers. Specifically, the nodes above the core layer include node 1.0, node 3.0, node 4.0, and node 5.0. For the nodes above the core layer, node 1.0 is connected to node 2.5.6, node 3.0 is connected to node 2.5.1, node 4.0 is connected to node 2.5.4, and node 5.0 is connected to nodes 2.5.3, 2.5.4, 2.5.5, and 2.5.6 respectively. Since the arrangement order of the nodes in the core layer is node 2.5.1, node 2.5.2, node 2.5.5, node 2.5.6, node 2.5.4, and node 2.5.3, the arrangement order of the nodes above the core layer is node 3.0, node 1.0, node 5.0, and node 4.0. Similarly, it can be seen that the arrangement order of the nodes in the lower layer of the core layer is node 2.1, node 2.7, node 2.2, node 2.4, node 2.6, and node 2.3.
[0129] Optionally, after determining the positions of nodes in other layers, the architecture graph construction system 100 can adjust the arrangement order of some or all nodes in other layers, such that the number of intersections between edges connecting nodes in other layers is less than the number before adjustment. Specifically, the architecture graph construction system 100 can adjust the arrangement order of some or all nodes in other layers in the following way: the architecture graph construction system 100 randomly adjusts the arrangement order of some or all nodes in other layers, and then, based on the adjusted arrangement order, determines whether the number of intersections between edges connecting nodes in other layers is less than the number before adjustment. If so, the arrangement order of some or all nodes in other layers is adjusted.
[0130] S103: Architecture Diagram Construction System 100 displays the architecture diagram.
[0131] To further improve the visualization effect of the architecture diagram, the architecture diagram construction system 100 may also perform the following steps (i.e., S104) before executing S103 above.
[0132] S104: Architecture Diagram Construction System 100 Optimized Architecture Diagram.
[0133] Specifically, the architecture diagram building system 100 can optimize the architecture diagram through any one or more of the following steps:
[0134] Step 1: The architecture diagram construction system 100 evenly deploys the endpoints of the edges connecting the nodes in the architecture diagram on one or more sides of the node.
[0135] Since a node in an architecture diagram may be connected to multiple nodes (i.e., multiple edges may be connected to that node), there may be overlap and intersections among the multiple edges connected to that node. To reduce the overlap and intersections among multiple edges connected to the same node, the architecture diagram construction system 100 can evenly distribute the endpoints of the edges connected to the node on one or more sides of the node. The edges connected to the node can be represented using line segments and / or polylines.
[0136] Taking node s in the architecture graph as an example, the architecture graph construction system 100 determines the positions of the endpoints of the edges connected to node s based on the relative positions of node s and the other end nodes of its connected edges, as well as the number of edges connected to node s. The endpoints of the edges connected to node s are evenly distributed on one or more sides of node s. It should be understood that the architecture graph construction system 100 can also use the above method to determine the positions of the endpoints of the edges connected to other nodes in the architecture graph, which will not be described in detail here. For example, in the architecture graph shown in Figure 3C above, the endpoints of the edges connected to each node are evenly distributed on one or both sides of the node.
[0137] Step 2: When the edges in the architecture diagram are represented by polylines, the architecture diagram construction system 100 determines the position of the inflection point of the edge based on the relative positions of the nodes at both ends of the edge.
[0138] When edges in an architecture diagram are represented using polylines, the position of the edge's inflection point can affect the stacking and intersection of edges. To reduce the stacking and intersection of edges in the architecture diagram, the architecture diagram construction system 100 can determine the position of the edge's inflection point based on the relative positions of the nodes at both ends of the edge. Specifically, this can include the following two cases:
[0139] Case 1: The position of the inflection point of the edge between nodes at different levels.
[0140] Taking node s as an example again, assuming node s is connected to nodes at multiple different levels, including node t, the farther apart the relative positions of nodes s and t are, the closer the inflection point of the edge between nodes s and t is to the endpoint of that edge on node s. Here, the inflection point is the one closest to the endpoint of the edge on node s. For example, in the architecture diagram shown in Figure 3C above, node 2.5.5 is connected to nodes 2.1 and 2.7, and node 2.5.5 is at a different level than nodes 2.1 and 2.7. Since the relative position of node 2.5.5 to node 2.1 is farther than that of node 2.5.5 to node 2.7, the inflection point of the edge between nodes 2.5.5 and 2.1 is closer to the endpoint of that edge on node 2.5.5.
[0141] It should be understood that the architecture diagram construction system 100 can also use the above method to determine the position of the inflection point of the edge between nodes in other different layers of the architecture diagram, which will not be described in detail here.
[0142] Optionally, after determining the inflection points of edges between nodes in multiple different layers of the architecture diagram, the architecture diagram construction system 100 further adjusts the positions of these inflection points to reduce intersections and stacking between edges in the architecture diagram. Here, edges between nodes in multiple different layers include edges between multiple nodes and nodes in different layers. For example, in the architecture diagram shown in Figure 3C above, there are edges between all nodes in the core layer and all nodes in other layers.
[0143] Case 2: The position of the inflection point of the edge between nodes on the same level.
[0144] Taking node s as an example again, assuming node s is connected to multiple nodes at the same level, including node r, then the closer the relative positions of nodes s and r, the closer the inflection point of the edge between nodes s and r is to the endpoint of that edge on node s. Here, the inflection point is the one closest to the endpoint of the edge on node s. For example, in the architecture diagram shown in Figure 3C above, node 2.5.2 is connected to nodes 2.5.5 and 2.5.4, and these three nodes are at the same level. Since the relative positions of nodes 2.5.2 and 2.5.5 are closer than those of nodes 2.5.2 and 2.5.4, the inflection point of the edge between nodes 2.5.2 and 2.5.5 is closer to the endpoint of that edge on node 2.5.2.
[0145] It should be understood that the architecture diagram construction system 100 can also use the above method to determine the position of the inflection point of the edge between nodes in other different layers of the architecture diagram, which will not be described in detail here.
[0146] In some embodiments, the architecture graph construction system 100 can determine the positions of the inflection points of all edges between nodes in the same layer in the following manner: The architecture graph construction system 100 takes the edges between nodes in the same layer as nodes (hereinafter referred to as edge nodes), and the intersection relationships between edges as edges between edge nodes, thereby obtaining a corresponding graph (hereinafter referred to as a first graph). Then, starting from the edge node with the smallest degree in the first graph, it dismantles them one by one until a bipartite graph is obtained, and then determines the two parts of the bipartite graph. For each part of the bipartite graph, the architecture graph construction system 100 generates a corresponding graph (hereinafter referred to as a second graph) according to the coverage relationship between the edges indicated by the edge nodes, and then determines the positions of the inflection points of the edges indicated by the edge nodes in the second graph, wherein the edges indicated by the edge nodes in different parts of the bipartite graph are located on different sides. In this embodiment, the intersection relationship between edges means that when two edges are on the same side, these two edges intersect each other. For example, in the architecture graph shown in Figure 3C above, if the edge between node 2.5.1 and node 2.5.5, and the edge between node 2.5.2 and node 2.5.4 are on the same side, these two edges will intersect. The overlapping relationship between edges refers to the fact that when two edges are on the same side, one edge can cover the other edge. For example, in the architecture diagram shown in Figure 3C above, the edge between node 2.5.5 and node 2.5.3 can cover the edge between node 2.5.5 and node 2.5.4.
[0147] It should be understood that in the above method, the architecture graph construction system 100 can set edges with intersecting relationships on different sides through a bipartite graph, thereby reducing the intersection points of edges between nodes in the same layer. On the other hand, the architecture graph construction system 100 also determines the position of the inflection point of the edge on the same side through a second graph, thereby reducing the intersection points between edges with overlapping relationships.
[0148] For example, taking the architecture diagram shown in Figure 3C above as an example, this describes how the architecture diagram construction system 100 determines the position of the inflection point of the edge between the nodes of the core layer in the architecture diagram.
[0149] The edge between nodes 2.5.1 and 2.5.5 is denoted as edge ①, the edge between nodes 2.5.1 and 2.5.4 is denoted as edge ②, the edge between nodes 2.5.2 and 2.5.5 is denoted as edge ③, the edge between nodes 2.5.2 and 2.5.4 is denoted as edge ④, the edge between nodes 2.5.3 and 2.5.5 is denoted as edge ⑤, the edge between nodes 2.5.4 and 2.5.5 is denoted as edge ⑥, the edge between nodes 2.5.4 and 2.5.6 is denoted as edge ⑦, and the edge between nodes 2.5.3 and 2.5.4 is denoted as edge ⑧. Among the above 8 edges, the edges with intersection relationships include: edge ① and edge ④, edge ② and edge ⑤, and edge ④ and edge ⑤. Edges with a covering relationship include: edge ① and edge ③, edge ② and edge ①, edge ② and edge ③, edge ② and edge ④, edge ② and edge ⑥, edge ② and edge ⑦, edge ④ and edge ③, edge ④ and edge ⑥, edge ④ and edge ⑦, edge ⑤ and edge ⑥, edge ⑤ and edge ⑦, edge ⑤ and edge ⑧, and edge ⑥ and edge ⑦.
[0150] As shown in Figure 6, the architecture graph construction system 100 uses the aforementioned 8 edges as edge nodes and the intersection relationships between these 8 edges as the edges between edge nodes, resulting in the graph shown in Figure 6(a). In this graph, node ① indicates edge ①, node ② indicates edge ②, and so on, with node ⑧ indicating edge ⑧. Since this graph is a bipartite graph, the architecture graph construction system 100 can determine that the first part of the bipartite graph includes nodes ② and ④, and the second part includes nodes ① and ⑤.
[0151] For the edge nodes in the first part, the architecture graph construction system 100 generates the graph shown in Figure 6(b) based on the coverage relationship between the above 8 edges. In this graph, node ② indicates edge ②, node ③ indicates edge ③, node ④ indicates edge ④, and node ⑦ indicates edge ⑦. Then, the positions of the inflection points of edges ②, ③, ④, and ⑦ are determined according to the direction of the edges in the graph. The direction of the edges in the graph indicates the coverage relationship of the edges indicated by the edge nodes at both ends. For example, if the edge between node ② and node ③ points to node ③, it means that edge ② can cover edge ③. Based on this, the architecture graph construction system 100 can set the position of the inflection point of edge ② to be further away from the endpoint of edge ② on node 2.5.2. For details, please refer to the positions of the inflection points of edges ② and ③ in the architecture graph shown in Figure 3C.
[0152] Similarly, for the edge nodes in the second part, the architecture graph construction system 100 generates the graph shown in Figure 6(c) based on the coverage relationship between the above eight edges, and then determines the positions of the inflection points of edges ①, ⑤, ⑥, and ⑧ according to the direction of the edges in the graph. It is worth noting that in this embodiment, in order to ensure that the edges between the nodes of the core layer are evenly distributed on different sides, the graph shown in Figure 6(b) is generated based on the coverage relationship between edges ② and ③, edges ② and ④, edges ② and ⑦, edges ④ and ③, and edges ④ and ⑦, and the graph shown in Figure 6(c) is generated based on the coverage relationship between edges ⑤ and ⑥ and edges ⑤ and ⑧. It should be understood that in practical applications, the graphs shown in Figure 6(b) and (c) can also be generated based on more or fewer coverage relationships.
[0153] Step 3: When edges in the architecture diagram are represented by polylines, the architecture diagram construction system 100 sets the corners of the edges to rounded corners. For example, in the architecture diagram shown in Figure 3C above, all edges are represented by polylines, and the corners of the edges are rounded.
[0154] Step 4: The architecture diagram construction system 100 configures the edges between nodes in different layers of the architecture diagram as different line segments or polylines. Different line segments may include, for example, line segments of different colors or line segments of different thicknesses; similarly, different polylines may include polylines of different colors or polylines of different thicknesses.
[0155] Step 5: The architecture diagram construction system 100 represents the start or end point of any edge among the multiple edges using different primitives. These different primitives include primitives with different colors, shapes, and sizes. For example, in the architecture diagram shown in Figure 3C above, the start point of the edge between node 2.5.1 and node 2.5.5 is represented by a circle, and the end point is represented by an arrow.
[0156] Step 6: The architecture diagram construction system 100 configures different graphical elements for nodes at different layers in the architecture diagram. These different graphical elements include, for example, graphical elements with different colors, shapes, and sizes.
[0157] Step 7: The architecture diagram construction system 100 displays node identifiers in the architecture diagram. The node identifier includes the name and code of the corresponding entity information, and the name and code are displayed in segments, with the code highlighted. For example, in the architecture diagram shown in Figure 3C above, the node identifier includes the name and code of the process architecture, and the name and code of the process architecture are displayed in two segments. The code and name of the process architecture diagram are highlighted using different colors.
[0158] After viewing the architecture diagram presented by the architecture diagram building system 100, users may still need to manipulate the architecture diagram. For example, they may expand a node in the architecture diagram to view the lower-level entity information associated with the entity information indicated by the expanded node. Or, they may collapse a node in the architecture diagram to view the upper-level entity information associated with the entity information indicated by the collapsed node. Or, they may drag and drop a node in the architecture diagram to a specified location as needed. Therefore, after executing S103 above, the architecture diagram building system 100 may also execute the following steps (i.e., S105):
[0159] S105: In response to user input, the architecture diagram building system 100 updates the architecture diagram and displays the updated architecture diagram.
[0160] This step is described below using the following three scenarios:
[0161] Scenario 1: The user input is node a in the expanded architecture diagram.
[0162] Specifically, the architecture diagram building system 100 receives user input of an operation to expand node a in the architecture diagram, then updates the architecture diagram based on the operation of expanding node a, and finally displays the updated architecture diagram. It should be understood that this embodiment does not limit the operation by which the user expands node a in the architecture diagram. For example, it could be clicking on node a in the architecture diagram, selecting relevant options for expanding node a in the user interface, or filling in relevant information for expanding node a in the user interface.
[0163] In some embodiments, node a indicates a first entity information among the aforementioned plurality of entity information, and the first entity information is associated with one or more lower-level entity information. Then, the architecture diagram construction system 100 updates the architecture diagram according to the operation of expanding node a, including: the architecture diagram construction system 100 determines the position of the child nodes associated with node a, and adjusts the position of node b in the architecture diagram so that node b is not obscured by the child nodes associated with node a when the updated architecture diagram is displayed. The architecture diagram construction system 100 also hides the edges connected to node a and displays the edges connected to the child nodes associated with node a, wherein the child nodes associated with node a indicate entity information lower than the first entity information. It should be understood that the updated architecture diagram may include one or more child nodes associated with node a. When the diagram includes one child node associated with node a, that child node indicates one entity information lower than the first entity information. When the diagram includes multiple child nodes associated with node a, each of the multiple child nodes indicates one entity information lower than the first entity information.
[0164] In some embodiments, the architecture graph construction system 100 determines the position of the child node associated with node a, including: the architecture graph construction system 100 determines the position of the child node based on the position of the node connected to the child node in the architecture graph.
[0165] Optionally, when node a is associated with multiple child nodes, after determining the positions of these child nodes, the architecture graph construction system 100 can adjust the arrangement order of some or all of the child nodes, wherein the number of intersections between the edges connecting the child nodes after adjustment is less than the number before adjustment. Specifically, the architecture graph construction system 100 can adjust the arrangement order of some or all of the child nodes in the following way: the architecture graph construction system 100 randomly adjusts the arrangement order of some or all of the child nodes, and then, based on the adjusted arrangement order, determines whether the number of intersections between the edges connecting the child nodes after adjustment is less than the number before adjustment. If so, the arrangement order of some or all of the child nodes is adjusted.
[0166] In some embodiments, node b is the node affected by the aforementioned expansion operation. That is, after expanding node a, if the position of node b is not adjusted, node b will be obscured by the child nodes associated with node a, thereby affecting the visual effect of the architecture diagram. Therefore, the architecture diagram construction system 100 adjusts the position of node b in the architecture diagram by: the architecture diagram construction system 100 adjusting the position of node b according to the position of node a before expansion and the positions of the child nodes associated with node a, wherein the number of nodes b can be one or more.
[0167] For example, using the architecture diagrams shown in Figures 3C-3D above, we will describe how the architecture diagram building system 100 updates the architecture diagram based on user input of node expansion operations. As shown in Figures 3C-3D, when the architecture diagram building system 100 detects a user input of an operation on node 2.6 in the expanded architecture diagram, in response to this operation, the architecture diagram building system 100 hides the edge between node 2.6 and node 2.5.6, and displays the child nodes associated with node 2.6 (i.e., nodes 2.6.1 and 2.6.2), as well as the edge between node 2.6.1 and node 2.5.6, and the edge between node 2.6.2 and node 2.5.6. The architecture diagram building system 100 also moves node 2.3 to the right so that node 2.3 is not obscured by nodes 2.6.1 and 2.6.2.
[0168] Scenario 2: The user input operation is to collapse node c in the architecture diagram (i.e., hide or collapse the child nodes associated with node c).
[0169] Node c indicates the second entity information among the aforementioned multiple entity information, and this second entity information is associated with one or more lower-level entity information. The architecture diagram includes child nodes associated with node c, and these child nodes indicate the lower-level entity information of the second entity information. It should be understood that the number of child nodes associated with node c in the architecture diagram can be one or more. When node c is associated with only one child node in the architecture diagram, that child node indicates one lower-level entity information of the second entity information. When node c is associated with multiple child nodes in the architecture diagram, each of the multiple child nodes indicates one lower-level entity information of the second entity information.
[0170] Specifically, the architecture diagram construction system 100 receives user input of an operation to fold node c in the architecture diagram, then updates the architecture diagram based on the operation to fold node c, and finally displays the updated architecture diagram. It should be understood that this embodiment does not limit the operation by which the user folds node c in the architecture diagram. For example, it could be clicking a child node associated with node c in the architecture diagram, selecting an option in the user interface for folding node c, or filling in relevant information for folding node c in the user interface.
[0171] In some embodiments, the architecture graph construction system 100 updates the architecture graph based on the operation of folding node c, including: the architecture graph construction system 100 determines the position of node c after hiding the child nodes associated with node c, and adjusts the position of node d in the architecture graph so that the node arrangement in the graph is aesthetically pleasing when the updated architecture graph is displayed. The architecture graph construction system 100 also hides the edges connected to the child nodes associated with node c and displays the edges connected to node c.
[0172] In some embodiments, node d is the node affected by the aforementioned folding operation. That is, after folding node c, if the position of node d is not adjusted, the spacing between node d and node c after hiding its child nodes will be large, thus affecting the visual effect of the architecture diagram. Therefore, the architecture diagram construction system 100 adjusts the position of node d in the architecture diagram by: the architecture diagram construction system 100 adjusting the position of node d according to the positions of the child nodes associated with node c and the position of node c after hiding its child nodes, wherein the number of nodes d can be one or more.
[0173] For example, using the architecture diagrams shown in Figures 3C-3D above, we will describe how the architecture diagram building system 100 updates the architecture diagram based on user-inputted operations on folded nodes. When the architecture diagram building system 100 detects a user-inputted operation on node 2.6 in the folded architecture diagram, in response to this operation, the architecture diagram building system 100 hides nodes 2.6.1 and 2.6.2, as well as the edges between nodes 2.6.1 and 2.5.6, and between nodes 2.6.2 and 2.5.6, and displays the edge between nodes 2.6 and 2.5.6. The architecture diagram building system 100 also moves node 2.3 to the left, making the arrangement of nodes in the updated architecture diagram more aesthetically pleasing.
[0174] Scenario 3: The user input is to drag and drop node e in the architecture diagram.
[0175] Specifically, the architecture diagram building system 100 receives the user's input of dragging and dropping node e in the architecture diagram, then updates the architecture diagram based on the above-mentioned dragging and dropping node e, and then displays the updated architecture diagram.
[0176] In some embodiments, the architecture graph construction system 100 updates the architecture graph based on the aforementioned drag-and-drop operation of node e, including: the architecture graph construction system 100 determines whether the number of elements on the current page is less than a threshold. If yes, the architecture graph construction system 100 hides the edges connected to other nodes in the architecture graph and dynamically displays node e and the edges connected to node e according to the dynamic position of node e. If no, the architecture graph construction system 100 dynamically displays node e and the edges connected to node e according to the dynamic position of node e, and displays the edges connected to other nodes in the architecture graph. Here, the graph elements on the current page include nodes on the current page and the edges between nodes. The threshold can be set by the user or dynamically set by the architecture graph construction system 100 according to actual conditions. For example, the threshold can be set as the number of graph elements corresponding to the critical state of interaction lag and smooth interaction.
[0177] It should be understood that, for the sake of simplicity, this step does not describe in detail how the architecture diagram construction system 100 displays the edges connected to node e and the edges of other nodes in the architecture diagram. For the specific implementation ideas, please refer to S103 above.
[0178] Case 4: The user input is the operation described in node e above.
[0179] Specifically, the architecture diagram building system 100 receives the user's input of releasing node e in the architecture diagram, then updates the architecture diagram based on the aforementioned release of node e, and then displays the updated architecture diagram.
[0180] In some embodiments, the architecture graph construction system 100 updates the architecture graph based on the aforementioned operation of releasing node e, including: the architecture graph construction system 100 displays node e and the edges connected to node e based on the position of node e after release. The architecture graph construction system 100 also displays the edges connected to other nodes in the architecture graph.
[0181] For example, using the architecture diagrams shown in Figures 3E-3F above, we will describe how the architecture diagram building system 100 updates the architecture diagram based on user input of dragging / releasing nodes. When the architecture diagram building system 100 detects a user input of dragging node 5.0 in the architecture diagram, in response to this operation, the architecture diagram building system 100 hides the edges connecting other nodes in the architecture diagram. When the architecture diagram building system 100 detects a user input of releasing node 5.0 in the architecture diagram, in response to this operation, the architecture diagram building system 100 displays the previously hidden edges.
[0182] It should be understood that, for the sake of simplicity, this step does not elaborate on how the architecture diagram construction system 100 displays the edges connected to the nodes. For the specific implementation ideas, please refer to S103 above.
[0183] In conjunction with the architecture diagram construction system 100 shown in Figure 1 above, the acquisition module 101, layout module 102, visualization module 103, and interaction module 104 work together to implement the steps performed by the architecture diagram construction system 100 in the method embodiment described in Figure 4 above. Specifically, the acquisition module 101 is used to execute S101 as described above. The layout module 102 is used to execute S102 as described above, and the related steps in S105 to adjust the arrangement order of some or all of the child nodes associated with node a. The visualization module 103 is used to execute S103-S104 as described above, and the related steps in S105-S105 to update the architecture diagram and display the updated architecture diagram. The interaction module 104 is used to execute the related steps in S105-S105 to receive user input.
[0184] This application embodiment also provides an architecture diagram display system. As shown in FIG7, the architecture diagram display system 200 includes a visualization module 201 and an interaction module 202. Optionally, the architecture diagram display system 200 further includes a layout module 203. The visualization module 201 is used to execute the steps in S103-S104 and S105 above, including updating the architecture diagram and displaying the updated architecture diagram. The interaction module 202 is used to execute the steps in S105 above, including receiving user input. The layout module 203 is used to execute the steps in S102 and S105 above, including adjusting the arrangement order of some or all child nodes associated with node a.
[0185] In this embodiment of the application, the architecture diagram shows that system 200 can be a software system, a hardware device, or a combination of a software system and a hardware device.
[0186] When the architecture diagram display system 200 is a software system, it can be deployed in a data center within a cloud environment. For example, the architecture diagram display system 200 may be a cloud service provided by a cloud service provider. Specifically, the architecture diagram display system 200 can be deployed independently on a single computing instance within a cloud environment's data center, or distributed across multiple computing instances within the same cloud environment's data center. These computing instances include servers, virtual machines, and containers.
[0187] The architecture diagram display system 200 can also be deployed on terminal devices. For example, the architecture diagram display system 200 is source code or a component that can run on one or more terminal devices. In one possible deployment method, the visualization module 201 and the interaction module 202 in the architecture diagram display system 200 are deployed on a front-end server, and the layout module 203 is deployed on a back-end server.
[0188] The architecture diagram display system 200 can also be deployed in a distributed manner in different environments, including terminal devices and data centers in cloud environments. For example, the visualization module 201 and the interaction module 202 of the architecture diagram display system 200 are deployed on terminal devices, while the layout module 203 is deployed in data centers in cloud environments.
[0189] This application also provides a computing device. The computing device can be a terminal device or a server in a data center within a cloud environment. As shown in FIG8, the computing device 300 includes a bus 301, a processor 302, a memory 303, and a communication interface 304. The processor 302, the memory 303, and the communication interface 304 communicate via the bus 301.
[0190] Bus 301 can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of representation, only one line is used in Figure 8, but this does not mean that the computing device 300 has only one bus or one type of bus. Bus 301 can include pathways for transmitting information between various components of the computing device 300 (e.g., processor 302, memory 303, and communication interface 304).
[0191] Processor 302 may include any one or more processors such as a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP).
[0192] Memory 303 may include volatile memory, such as random access memory (RAM). Memory 303 may also include non-volatile memory, such as read-only memory (ROM), flash memory, hard disk drive (HDD), or solid state drive (SSD).
[0193] The memory 303 stores executable program code. The processor 302 executes the executable program code stored in the memory 303 to perform some or all of the steps in S101-S105 above. That is to say, the memory 303 stores program code for implementing the functions of the architecture diagram construction system 100 (including the acquisition module 101, layout module 102, visualization module 103, and interaction module 104) and / or the architecture diagram display system 200 (including the visualization module 201, interaction module 202, and visualization module 203).
[0194] The communication interface 304 uses transceiver modules such as, but not limited to, network interface cards and transceivers to enable communication between the computing device 300 and other devices or communication networks. For example, the computing device 300 presents an architecture diagram to the user through the communication interface 304.
[0195] This application also provides a computing device cluster. The computing device cluster includes multiple computing devices, which may include one or more of the following: terminal devices, servers in a cloud environment's data center. As shown in Figure 9, the computing device cluster 400 includes multiple computing devices 300. These multiple computing devices 300 can be connected via a network (e.g., a wide area network or a local area network).
[0196] The memory 303 of multiple computing devices 300 in the computing device cluster 400 may store the same program code for executing some or all of the steps in S101-S105. Alternatively, the memory 303 of multiple computing devices 300 in the computing device cluster 400 may each store partial program code for executing some or all of the steps in S101-S105, that is, the combination of multiple computing devices 300 jointly executes some or all of the steps in S101-S105.
[0197] It should be understood that this application embodiment does not specifically limit which module in the architecture diagram building system 100 and / or architecture diagram display system 200 is deployed on which computing device 300. In practical applications, the deployment can be adaptively made according to the computing power or specific needs of the computing device 300. Taking the architecture diagram building system 100 as an example, considering how to present an architecture diagram with better visualization effects to the user (e.g., smooth interaction, timely page response, etc.), this application embodiment provides the deployment method shown in Figure 10. As shown in Figure 10, the computing device cluster 400 includes computing device 300A and computing device 300B. Computing device 300A and computing device 300B are connected through a network, specifically through the communication interface in each computing device. The memory 303 in computing device 300A stores instructions for implementing the functions of the acquisition module 101 and the layout module 102, and the memory 303 in computing device 300B stores instructions for implementing the functions of the visualization module 103 and the interaction module 104.
[0198] This application also provides a computer program product containing instructions. The computer program product may be a software or program product containing instructions that can run on a computing device or be stored on any available medium. When the computer program product is run on at least one computing device, it causes the at least one computing device to perform the visualization method of the architecture diagram described above.
[0199] This application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium that a computing device can store, or a data storage device such as a data center containing one or more available media. The available media can be magnetic media (e.g., floppy disks, hard disks, magnetic tapes), optical media (e.g., digital versatile discs, DVDs), semiconductor media (e.g., SSDs), etc. The computer-readable storage medium includes instructions that instruct the computing device to execute the visualization method of the architecture diagram described above.
[0200] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit it. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features; and these modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the protection scope of the technical solutions of the embodiments of this application.
Claims
1. A method for generating an architecture diagram, characterized in that, The method includes: To obtain information about multiple entities and the relationships between them; An architecture diagram is generated based on the multiple entity information and the relationships between the entity information. The architecture diagram is a multi-layer topology structure composed of multiple nodes and multiple edges. Each of the multiple nodes indicates an entity information, and the edge indicates the relationship between the entity information indicated by the nodes located at both ends of the edge. The architecture diagram is shown, in which the nodes of the core layer are arranged according to their density, wherein the density of the middle nodes of the core layer is higher than that of the nodes on both sides. The density of a node depends on the degree and / or the number of cores of the node. The nodes of other layers in the architecture diagram are arranged according to the arrangement position of the nodes of the core layer and the relationship between the entity information indicated by the nodes.
2. The method according to claim 1, characterized in that, The step of generating an architecture diagram based on the multiple entity information and the relationships between the entity information includes: The multiple nodes and multiple edges are determined based on the multiple entity information and the relationships between the entity information; The plurality of nodes and the plurality of edges are divided to obtain one or more connected components; The degree and / or number of cores of the nodes in the core layer are determined based on the one or more connected components. The density of nodes in the core layer is calculated based on the degree and / or number of cores of the nodes in the core layer. The arrangement of the multiple nodes is determined based on the density of the nodes in the core layer, and the architecture diagram is generated.
3. The method according to claim 2, characterized in that, The plurality of nodes includes a first node, and prior to displaying the architecture diagram, the method further includes: Based on the relative positions of the first node and the other end nodes of its connected edges, and the number of edges connected to the first node, the positions of the endpoints of the edges connected to the first node are determined, wherein the endpoints of the edges connected to the first node are evenly distributed on one or more sides of the first node. The plurality of nodes further includes a second node, wherein the edge between the first node and the second node is a line segment or a polyline, and after determining the arrangement of the plurality of nodes, the method further includes: When the edge between the first node and the second node is a polyline, the position of the inflection point of the edge between the first node and the second node is determined based on their relative positions.
4. The method according to claim 2 or 3, characterized in that, After determining the arrangement positions of the plurality of nodes, the method further includes: Adjust the arrangement order of nodes in other layers so that the number of intersections between the edges connected to the nodes in other layers after the adjustment is less than the number before the adjustment.
5. The method according to any one of claims 1 to 4, characterized in that, The architecture diagram is an enterprise process architecture diagram, which is used to represent the relationships between enterprise processes.
6. The method according to any one of claims 1 to 5, characterized in that, The method further includes: The system receives user input to expand the third node in the architecture diagram. The third node indicates the first entity information among the plurality of entity information, and the first entity information is associated with one or more lower-level entity information. Based on the operation of expanding the third node, the architecture diagram is updated and the updated architecture diagram is displayed. The updated architecture diagram includes one or more child nodes associated with the third node. The child nodes associated with the third node indicate entity information below the first entity information. Updating the architecture diagram includes determining the arrangement position of one or more child nodes associated with the third node and adjusting the position of the fourth node in the architecture diagram so that the fourth node is not obscured by the child nodes associated with the third node when the updated architecture diagram is displayed.
7. The method according to any one of claims 1 to 5, characterized in that, The method further includes: The system receives user input to collapse the fifth node in the architecture diagram. The fifth node is associated with one or more child nodes. The fifth node indicates the second entity information among the multiple entity information. The second entity information is associated with one or more lower-level entity information. The child nodes associated with the fifth node indicate the entity information below the second entity information. Based on the operation of folding the fifth node, the architecture diagram is updated and the updated architecture diagram is displayed. The updated architecture diagram hides one or more child nodes associated with the fifth node. The updating of the architecture diagram includes determining the arrangement position of the fifth node after hiding the one or more child nodes and adjusting the position of the sixth node in the architecture diagram.
8. The method according to any one of claims 1 to 5, characterized in that, The method further includes: Receive user input to drag and drop the seventh node in the architecture diagram; Based on the dragging operation of the seventh node, hide the edges connected to other nodes in the architecture diagram; Receive the user input to release the seventh node; Based on the operation of releasing the seventh node, the edges connected to the other nodes are displayed.
9. The method according to any one of claims 1 or 8, characterized in that, Nodes at different layers in the architecture diagram are represented using different primitives; or... The edges between nodes in different layers of the architecture diagram are represented using different line segments or polylines; or... When the edges in the architecture diagram are represented by polylines, the corners of the polylines are rounded; or... The starting and ending points of any one of the multiple edges in the architecture diagram are represented using different primitives; or, The architecture diagram displays the identifiers of the multiple nodes. The identifier of any one of the multiple nodes includes the name and code of the corresponding entity information, and the name and code are displayed in segments.
10. A method for displaying an architecture diagram, characterized in that, The method includes: An architecture diagram is presented to the user. The architecture diagram is a multi-layer topology structure composed of multiple nodes and multiple edges. Each of the multiple nodes indicates an entity information and the edge indicates the relationship between the entity information indicated by the nodes located at both ends of the edge. The user input is received to expand the first node in the architecture diagram. The first node indicates first entity information, and the first entity information is associated with one or more lower-level entity information. Based on the operation of expanding the first node, the arrangement position of one or more child nodes associated with the first node is determined, and the position of the second node in the architecture diagram is adjusted. The child nodes associated with the first node indicate the entity information below the first entity information. Display one or more child nodes associated with the first node, wherein the second node, after its position adjustment, is not obscured by the child nodes associated with the first node.
11. The method according to claim 10, characterized in that, The method further includes: The user input is received to collapse the third node in the architecture diagram. The third node is associated with one or more child nodes. The third node indicates second entity information. The second entity information is associated with one or more lower-level entity information. The child nodes associated with the third node indicate the entity information below the second entity information. Based on the operation of folding the third node, determine the position of the third node after hiding one or more child nodes associated with the third node, and adjust the position of the fourth node in the architecture diagram; Hide one or more child nodes associated with the third node.
12. The method according to claim 10 or 11, characterized in that, The method further includes: Receive the user's input to drag and drop the fifth node in the architecture diagram; Based on the dragging operation of the fifth node, hide the edges connected to other nodes in the architecture diagram; Receive the user input to release the fifth node; Based on the operation of releasing the fifth node, the edges connected to the other nodes are displayed.
13. The method according to any one of claims 10 to 12, characterized in that, The architecture diagram is an enterprise process architecture diagram, which is used to represent the relationships between enterprise processes.
14. The method according to any one of claims 10 to 13, characterized in that, Before presenting the architecture diagram to the user, the method further includes: The plurality of nodes and the plurality of edges are divided to obtain one or more connected components; The degree and / or number of cores of the nodes in the core layer are determined based on the one or more connected components. The density of nodes in the core layer is calculated based on the degree and / or number of cores of the nodes in the core layer. The arrangement of the multiple nodes is determined based on the density of the nodes in the core layer, and the architecture diagram is generated.
15. An architecture diagram construction system, characterized in that, The system includes: The acquisition module is used to acquire information about multiple entities and the relationships between them. The layout module is used to generate an architecture diagram based on the multiple entity information and the relationship between the entity information. The architecture diagram is a multi-layer topology structure composed of multiple nodes and multiple edges. Each of the multiple nodes indicates an entity information, and the edge indicates the relationship between the entity information indicated by the nodes located at both ends of the edge. A visualization module is used to display the architecture diagram, in which the nodes of the core layer are arranged according to their density, wherein the density of the middle nodes of the core layer is higher than that of the nodes on both sides, and the density of the nodes depends on the degree and / or the number of cores of the nodes. The nodes of other layers in the architecture diagram are arranged according to the arrangement position of the nodes of the core layer and the relationship between the entity information indicated by the nodes.
16. The system according to claim 15, characterized in that, The layout module is used to determine the multiple nodes and multiple edges based on the multiple entity information and the relationships between the entity information; to divide the edges between the nodes of the core layer and the nodes of other layers to obtain one or more connected components; to determine the degree and / or core number of the nodes of the core layer based on the one or more connected components; to calculate the density of the nodes of the core layer based on the degree and / or core number of the nodes of the core layer; and to determine the arrangement position of the multiple nodes based on the density of the nodes of the core layer to generate the architecture diagram.
17. The system according to claim 16, characterized in that, The plurality of nodes includes the first node. The visualization module is further configured to determine the position of the endpoints of the edges connected to the first node based on the relative positions of the first node and the other end nodes of its connected edges, and the number of edges connected to the first node, wherein the endpoints of the edges connected to the first node are evenly distributed on one or more sides of the first node. The plurality of nodes also includes a second node, wherein the edge between the first node and the second node is a line segment or a polyline. The layout module is further configured to determine the position of the inflection point of the edge between the first node and the second node based on the relative positions of the first node and the second node when the edge between the first node and the second node is a polyline.
18. The system according to claim 16 or 17, characterized in that, The layout module is also used to adjust the arrangement order of nodes in other layers, so that the number of intersections between the edges connected to the nodes in other layers after adjustment is less than the number before adjustment.
19. The system according to any one of claims 15 to 18, characterized in that, The architecture diagram is an enterprise process architecture diagram, which is used to represent the relationships between enterprise processes.
20. The system according to any one of claims 15 to 19, characterized in that, The system also includes an interaction module. The interaction module is used to receive user input to expand the third node in the architecture diagram. The third node indicates the first entity information among the multiple entity information. The first entity information is associated with one or more lower-level entity information. The visualization module is further configured to update the architecture diagram based on the operation of expanding the third node, and display the updated architecture diagram. The updated architecture diagram includes one or more child nodes associated with the third node. The child nodes associated with the third node indicate entity information below the first entity information. Updating the architecture diagram includes determining the arrangement position of the child nodes associated with the third node and adjusting the position of the fourth node in the architecture diagram so that the fourth node is not obscured by the child nodes associated with the third node when the updated architecture diagram is displayed.
21. The system according to any one of claims 15 to 19, characterized in that, The system also includes an interaction module. The interaction module is used to receive user input to collapse the fifth node in the architecture diagram. The fifth node is associated with one or more child nodes. The fifth node indicates the second entity information among the multiple entity information. The second entity information is associated with one or more lower-level entity information. The child nodes associated with the fifth node indicate the entity information below the second entity information. The visualization module is further configured to update the architecture diagram based on the operation of folding the fifth node, and display the updated architecture diagram, wherein the updated architecture diagram hides one or more child nodes associated with the fifth node, wherein updating the architecture diagram includes confirming... The arrangement position of the fifth node after hiding one or more child nodes is determined, and the position of the sixth node in the architecture diagram is adjusted.
22. The system according to any one of claims 15 to 19, characterized in that, The system also includes an interaction module. The interaction module is used to receive user input of dragging the seventh node in the architecture diagram; and to receive user input of releasing the seventh node. The visualization module is also used to hide the edges connected to other nodes in the architecture diagram based on the operation of dragging the seventh node; and to display the edges connected to other nodes based on the operation of releasing the seventh node.
23. The system according to any one of claims 15 to 21, characterized in that, Nodes at different layers in the architecture diagram are represented using different primitives; or... The edges between nodes in different layers of the architecture diagram are represented using different line segments or polylines; or... When the edges in the architecture diagram are represented by polylines, the corners of the polylines are rounded; or... The starting and ending points of any one of the multiple edges in the architecture diagram are represented using different primitives; or, The architecture diagram displays the identifiers of the multiple nodes. The identifier of any one of the multiple nodes includes the name and code of the corresponding entity information, and the name and code are displayed in segments.
24. An architecture diagram display system, characterized in that, The system includes: A visualization module is used to present an architecture diagram to the user. The architecture diagram is a multi-layer topology structure composed of multiple nodes and multiple edges. Each of the multiple nodes indicates an entity information, and the edge indicates the relationship between the entity information indicated by the nodes located at both ends of the edge. The interaction module is used to receive the user's input to expand the first node in the architecture diagram. The first node indicates first entity information, and the first entity information is associated with one or more lower-level entity information. The visualization module is further configured to determine the arrangement position of one or more child nodes associated with the first node based on the operation of expanding the first node, adjust the position of the second node in the architecture diagram, wherein the child nodes associated with the first node indicate the entity information below the first entity information; and display one or more child nodes associated with the first node, wherein the second node after the position adjustment is not obscured by the child nodes associated with the first node.
25. The system according to claim 24, characterized in that, The interaction module is also used to receive the user's input to collapse the third node in the architecture diagram. The third node is associated with one or more child nodes. The third node indicates second entity information. The second entity information is associated with one or more lower-level entity information. The child nodes associated with the third node indicate the entity information below the second entity information. The visualization module is further configured to determine the position of the third node after hiding one or more child nodes associated with the third node based on the operation of folding the third node, adjust the position of the fourth node in the architecture diagram, and hide one or more child nodes associated with the third node.
26. The system according to claim 24 or 25, characterized in that, The interaction module is also used to receive user input of dragging the fifth node in the architecture diagram; and to receive user input of releasing the fifth node; The visualization module is also used to hide the edges connected to other nodes in the architecture diagram based on the operation of dragging the fifth node; and to display the edges connected to other nodes based on the operation of releasing the fifth node.
27. The system according to any one of claims 24 to 26, characterized in that, The architecture diagram is an enterprise process architecture diagram, which is used to represent the relationships between enterprise processes.
28. The system according to any one of claims 24 to 27, characterized in that, The system also includes: The layout module is used to divide the multiple nodes and the multiple edges to obtain one or more connected components; determine the degree and / or core number of the nodes in the core layer based on the one or more connected components; calculate the density of the nodes in the core layer based on the degree and / or core number of the nodes in the core layer; determine the arrangement position of the multiple nodes based on the density of the nodes in the core layer, and generate the architecture diagram.
29. A computing device, characterized in that, It includes a processor and a memory, the processor executing instructions stored in the memory to implement the method as claimed in any one of claims 1 to 14.
30. A computer-readable storage medium, characterized in that, It includes computer program instructions that, when executed by a computing device, cause the computing device to perform the method as described in any one of claims 1 to 14.