Architecture diagram generation method and architecture diagram construction system

By determining the tightness of core layer nodes in the architectural diagram construction system and optimizing the node layout, the problems of nodes and edge stacking and intersection in the existing architectural diagram are solved, and the visualization effect of the architectural diagram is improved.

WO2025067374A1PCT designated stage expired Publication Date: 2025-04-03HUAWEI TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/121579
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-09-28
Filing Date
2024-09-26
Publication Date
2025-04-03

AI Technical Summary

Technical Problem

When the number of entity information and relationship complexity increase, existing architectural diagrams are prone to stacking and crossing nodes and edges, resulting in poor user visual experience.

Method used

A method and construction system for generating an architectural diagram are provided, by determining the density of the core layer nodes and arranging nodes according to the density, an architectural diagram with a more symmetrical layout and shorter edge length is generated to reduce the intersection of edges.

Benefits of technology

The visualization effect of the architecture diagram is improved, making the node layout more symmetrical, the average length of edges is shorter, and the intersection points are fewer, and the user's visual experience is better.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024121579_03042025_PF_FP_ABST
    Figure CN2024121579_03042025_PF_FP_ABST
Patent Text Reader

Abstract

The present application provides an architecture diagram generation method and an architecture diagram construction system. The method can be applied to an architecture diagram construction system, so as to generate an architecture diagram having a better visual effect. Specifically, the architecture diagram construction system acquires a plurality of pieces of entity information and relationships between the entity information, and then generates an architecture diagram on the basis of the plurality of pieces of entity information and the relationships between the entity information, wherein the architecture diagram is a multilayer topological structure composed of a plurality of nodes and a plurality of edges, each node in the architecture diagram indicates one piece of entity information, and an edge in the architecture diagram indicates a relationship between entity information indicated by nodes located at two ends of the edge. Then, the architecture diagram construction system displays the architecture diagram, wherein nodes of a core layer in the architecture diagram are arranged on the basis of density, the density of intermediate nodes of the core layer is higher than that of nodes on two sides, and nodes of other layers in the architecture diagram are arranged on the basis of the arrangement positions of the nodes of the core layer and relationships between entity information indicated by the nodes.
Need to check novelty before this filing date? Find Prior Art

Description

Architecture diagram generation method and architecture diagram construction system

[0001] This application claims priority to the Chinese patent application with application number 202311292034.8 filed with the State Intellectual Property Office of China on September 28, 2023, and priority to the Chinese patent application with the invention name “Method for generating architecture diagram and architecture diagram construction system”, all contents of which are incorporated by reference into this application. Technical Field

[0002] The present application relates to the field of computer technology, and in particular to a method for generating an architecture diagram and an architecture diagram construction system. Background Art

[0003] Architecture diagrams can show users entity information (for example, business processes) and the relationships between them. However, the more entities there are and the more complex the relationships between them, the more nodes and edges there are in the diagram. This can easily lead to overlapping and crossing edges, causing visual clutter for users.

[0004] Summary of the Invention

[0005] The present application provides a method for generating an architecture diagram and an architecture diagram construction system, which can improve the visualization effect of the architecture diagram.

[0006] In the first aspect, the present application provides a method for generating an architecture diagram. The method can be applied to an architecture diagram construction system. The architecture diagram construction system obtains a plurality of entity information and the relationship between the entity information, and then generates an architecture diagram based on the relationship between the plurality of entity information and the entity information, and then displays the architecture diagram. The architecture diagram is a multi-layer topological structure consisting of a plurality of nodes and a plurality of 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 nodes in the core layer of the architecture diagram are arranged according to density, and the density of the middle nodes of the core layer is higher than the density of the nodes on both sides. The density of the nodes depends on the degree of the nodes and / or the number of cores. The nodes of other layers in the architecture diagram are arranged according to the arrangement position of the nodes in the core layer and the relationship between the entity information indicated by the nodes.

[0007] In the technical solution provided by the present 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 the number of intersections between the edges is less, thereby improving the user's visual experience and making the generated architecture diagram have a better visualization effect.

[0008] In a possible implementation of the first aspect, an architecture diagram construction system generates an architecture diagram based on multiple entity information and relationships between the entity information, including: the architecture diagram construction system determines multiple nodes and multiple edges based on the multiple entity information and relationships between the entity information, and then divides the edges between the core layer nodes and the nodes of other layers in the multiple nodes and edges to obtain one or more connected domains. Thereafter, based on the one or more connected domains obtained by the division, the degree and / or number of cores of the nodes in the core layer are determined, and then the density of the nodes in the core layer is calculated based on the degree and / or number of cores of the nodes in the core layer. Then, based on the density of the nodes in the core layer, the arrangement positions of the multiple nodes are determined to generate the architecture diagram.

[0009] In a possible implementation of the first aspect, the above-mentioned multiple nodes include a first node. Before the architecture diagram construction system displays the architecture diagram, the architecture diagram construction system also determines the position of the endpoint of the edge connected to the first node based on the relative position of the first node and the other end node of the edge connected to it, and the number of edges connected to the first node, wherein the endpoints of the edge connected to the first node are evenly deployed on one side or multiple sides of the first node.

[0010] It should be understood that a first node may be connected to multiple edges. The architecture diagram construction system determines the location of each edge endpoint on the first node based on the relative positions of the nodes at each end of each edge, thereby reducing intersections and overlaps between the multiple edges connected to the first node. Furthermore, the endpoints of the edges connected to the first node are evenly distributed on one or more sides of the first node, further enhancing the user's visual experience and providing a more visually appealing architecture diagram.

[0011] In a possible implementation of the first aspect, the plurality of nodes further include a second node, and the edge between the first node and the second node is a line segment or a polyline. After the architecture diagram construction system determines the arrangement positions of the plurality of nodes, if the edge between the first node and the second node is a polyline, the architecture diagram construction system further determines a position of an 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.

[0012] In the above implementation, when the edges between nodes are represented by broken lines, the architecture diagram construction system determines the positions of the inflection points of the edges between the nodes based on the relative positions between the nodes, so as to minimize the intersection and overlap between the 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 positions of the plurality of nodes, the architecture diagram construction system further adjusts the arrangement order of the nodes in the other layers, such that the number of intersections between edges connecting the nodes in the other layers after the adjustment is less than the number before the adjustment. In this way, visual noise reduction can be achieved, thereby improving the visualization of the architecture diagram.

[0014] In a possible implementation of the first aspect, the architecture diagram is an enterprise process architecture diagram, which is used to represent the relationship between enterprise processes.

[0015] In a possible implementation of the first aspect, the architecture diagram construction system further receives a user input operation to expand a third node in the architecture diagram, wherein the third node indicates first entity information among the plurality of entity information, and the first entity information is associated with one or more entity information in a lower layer. 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 in a lower layer of the first entity information. Updating 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 when the updated architecture diagram is displayed, the fourth node is not obscured by the child nodes associated with the third node.

[0016] Through this implementation, users can expand any one or more nodes in the architecture diagram as needed to obtain the underlying entity information associated with the entity information indicated by the expanded node. Furthermore, some nodes and edges in the architecture diagram will also be adaptively adjusted based on this expansion operation, ensuring that there is no occlusion between nodes in the architecture diagram.

[0017] In one possible implementation of the first aspect, the architecture diagram construction system further receives a user input requesting a folding operation for a fifth node in the architecture diagram, wherein the fifth node is associated with one or more child nodes, the fifth node indicates second entity information among the plurality of 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 entity information in a lower level than the second entity information. The architecture diagram construction system then updates the architecture diagram based on the folding operation for the fifth node and displays the updated architecture diagram. The updated architecture diagram hides the one or more child nodes associated with the fifth node. Updating the architecture diagram includes determining the layout position of the fifth node after hiding the child nodes and adjusting the position of the sixth node in the architecture diagram.

[0018] Through this implementation, users can collapse nodes in the architecture diagram as needed to access the entity information associated with the collapsed node. Furthermore, some nodes and edges in the architecture diagram will also be adaptively adjusted based on this collapse operation, making the nodes in the architecture diagram more reasonable and aesthetically pleasing to arrange without collapsing each other.

[0019] In a possible implementation of the first aspect, the architecture diagram construction system further receives a user input operation of dragging a seventh node among the multiple nodes, and then hides edges connected to other nodes in the architecture diagram based on the dragging operation of the seventh node. The architecture diagram construction system further receives a user input operation of releasing the seventh node, and then displays the hidden edges based on the releasing operation of the seventh node.

[0020] Through the above implementation, when the user drags a node in the architecture diagram, the architecture diagram will display the edges connected to the dragged node and hide the edges connected to other nodes, so that the user can focus more on the dragged node. In addition, since the architecture diagram needs to be rendered in real time when the user drags the node in the architecture diagram, especially when the architecture diagram includes a large number of nodes and edges, real-time rendering of the architecture diagram will consume more resources, which may easily cause interaction jams. The above implementation method can hide the edges connected to other nodes when the user drags the node, and redisplay the hidden edges when the user releases the node. Therefore, it can reduce the resources consumed in rendering the architecture diagram without affecting the user's observation and improve the smoothness of the interactive operation.

[0021] In a possible implementation of the first aspect, nodes at different layers in the architecture diagram are represented using different graphic primitives. Alternatively, edges between nodes at different layers in the architecture diagram are represented using different line segments or broken lines. Alternatively, when edges in the architecture diagram are represented using broken lines, the corners of the edges are rounded. Alternatively, the start and end points of any one of the multiple edges in the architecture diagram are represented using different graphic primitives. Alternatively, the identifiers of multiple nodes are displayed in the architecture diagram, and 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. In this way, the purpose of visual noise reduction can be achieved, thereby improving the visualization effect of the architecture diagram.

[0022] In the second aspect, the present application provides a method for displaying an architecture diagram. The 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-layer topological structure composed of multiple nodes and multiple edges, each node in the architecture diagram indicates an entity information, and the edge in the architecture diagram indicates the relationship between the entity information indicated by the nodes at both ends of the edge. The architecture diagram display system also receives an operation input by the user to expand the first node in the architecture diagram, wherein the first node indicates the first entity information, and the first entity information is associated with one or more entity information of the lower layer. Then, according to 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 the second node in the architecture diagram is adjusted, and the one or more child nodes associated with the above-mentioned first node are displayed, wherein the child node associated with the first node indicates the entity information of the lower layer of the first entity information, and the second node after the position adjustment is not blocked by the child node associated with the first node.

[0023] In one possible implementation of the second aspect, the architecture diagram construction system further receives a user input requesting a folding operation for a third node in the 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 underlying entity information, and the child nodes associated with the third node indicate entity information underlying the second entity information. Based on the folding operation for the third node, the architecture diagram construction system determines a position for the third node after hiding the one or more child nodes, adjusts a position for a 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 further receives a user input operation of dragging a fifth node in the architecture diagram, and then hides edges connected to other nodes in the architecture diagram based on the dragging operation of the fifth node. The architecture diagram display system further receives a user input operation of releasing the fifth node, and then displays the hidden edges based on the releasing operation of the fifth node.

[0025] In a possible implementation of the second aspect, the above-mentioned architecture diagram is an enterprise process architecture diagram, which is used to represent the relationship between enterprise processes.

[0026] In one possible implementation of the second aspect, before presenting the architecture diagram to the user, the architecture diagram display system further partitions the multiple nodes and at least one of the multiple edges to obtain one or more connected domains, wherein at least one edge is an edge between a node in the core layer and a node in another layer in the architecture diagram. The system then determines the degree and / or core count of the nodes in the core layer based on the one or more connected domains obtained by partitioning. The system then calculates the density of the nodes in the core layer based on the degree and / or core count of the nodes in the core layer. Finally, the system determines the arrangement of the multiple nodes based on the density of the nodes in the core layer to generate the architecture diagram.

[0027] In a third aspect, the present 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 relationship between entity information. The layout module is used to generate an architecture diagram based on multiple entity information and the relationship between entity information. The visualization module is used to display the architecture diagram. The architecture diagram is a multi-layer topological 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 relationship 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 the density. The density of the middle node of the core layer is higher than the density of the nodes on both sides. The density of the node depends on the degree of the node and / or the number of cores. The nodes of other layers in the architecture diagram are arranged according to the arrangement position of the nodes in the core layer and the relationship between the entity information indicated by the nodes.

[0028] In a 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 relationship between the entity information, and then divide the edges between the nodes of the core layer and the nodes of other layers in the multiple nodes and edges to obtain one or more connected domains, and then determine the degree and / or number of cores of the nodes in the core layer based on the one or more connected domains obtained by the division, and then calculate the density of the nodes in the core layer based on the degree and / or number of cores of the nodes in the core layer, and then determine the arrangement positions of the above-mentioned multiple nodes based on the density of the nodes in the core layer to generate an architecture diagram.

[0029] In a possible implementation of the third aspect, the multiple nodes include a first node. The visualization module is configured to determine positions of endpoints of edges connected to the first node based on a relative position of the first node and a node at the other end of an edge connected to the first node, 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 a possible implementation of the third aspect, the plurality of nodes further includes a second node, and an edge between the first node and the second node is a line segment or a polyline. The layout module is further configured to, when the edge between the first node and the second node is a polyline, determine a position of an inflection point of the edge between the first node and the second node based on a relative position of the first node and the second node.

[0031] In a possible implementation of the third aspect, the layout module is further used to adjust the arrangement order of nodes in other layers in the architecture diagram, and after the adjustment, the number of intersections between the edges connected on the nodes of other layers is less than the number before the adjustment.

[0032] In a possible implementation of the third aspect, the above-mentioned architecture diagram is an enterprise process architecture diagram, which is used to represent the relationship between enterprise processes.

[0033] In a possible implementation of the third aspect, the architecture diagram construction system further includes an interaction module. The interaction module is used to receive a user input operation for expanding a third node in the architecture diagram, wherein the third node indicates first entity information among the above-mentioned multiple entity information, and the first entity information is associated with one or more lower-level entity information. The visualization module is also used to update the architecture diagram according to the above-mentioned 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, and the child nodes associated with the third node indicate entity information in the lower layer of the first entity information. The above-mentioned updating of the architecture diagram includes determining the arrangement position of the one or more child nodes associated with the above-mentioned third node, and adjusting the position of the fourth node in the architecture diagram so that the fourth node is not blocked 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 a user input for collapsing a fifth node in the architecture diagram, wherein the fifth node is associated with one or more child nodes, the fifth node indicates second entity information among the plurality of entity information, the second entity information is associated with one or more entity information in a lower layer, and the child node associated with the fifth node indicates an entity information in a lower layer than the second entity information. The visualization module is further configured to update the architecture diagram based on the operation of collapsing the fifth node and display the updated architecture diagram. The updated architecture diagram hides the one or more child nodes associated with the fifth node. Updating the architecture diagram includes determining the layout position of the fifth node after hiding the child nodes and adjusting the position of the sixth node in the architecture diagram.

[0035] In a possible implementation of the third aspect, the interaction module is further configured to receive a user input of an operation of dragging a seventh node in the architecture diagram, and receive a user input of an operation of releasing the seventh node. The visualization module is further configured to hide edges connected to other nodes in the architecture diagram in response to the operation of dragging the seventh node, and to display edges connected to the other nodes in response to the operation of releasing the seventh node.

[0036] In one possible implementation of the third aspect, nodes at different layers in the architecture diagram are represented using different graphic primitives. Alternatively, edges between nodes at different layers in the architecture diagram are represented using different line segments or broken lines. Alternatively, when edges in the architecture diagram are represented using broken lines, the corners of the edges are rounded. Alternatively, the start and end points of any one of the multiple edges in the architecture diagram are represented using different graphic primitives. Alternatively, the architecture diagram displays identifiers for multiple nodes, and 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] In a fourth aspect, the present application provides an architecture diagram display system. The system includes a visualization module and an interaction module. The visualization module is used to present an architecture diagram to a user, wherein the architecture diagram is a multi-layer topological structure consisting of multiple nodes and multiple edges, each node in the architecture diagram indicates an entity information, and the edge in the architecture diagram indicates the relationship between the entity information indicated by the nodes at both ends of the edge. The interaction module is used to receive an operation input by the user to expand the first node in the architecture diagram, wherein the first node indicates the first entity information, and the first entity information is associated with one or more entity information of the lower layer. The visualization module is also used to determine the arrangement position of one or more child nodes associated with the first node according to the above-mentioned operation of expanding the first node, adjust the position of the second node in the architecture diagram, and display the one or more child nodes associated with the above-mentioned first node, wherein the child node associated with the first node indicates the entity information of the lower layer of the first entity information, and the second node after the position adjustment is not blocked by the child node associated with the first node.

[0038] In one possible implementation of the fourth aspect, the interaction module is further configured to receive a user input requesting an operation to collapse a third node in the 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 entity information in a lower layer, and the child nodes associated with the third node indicate entity information in a lower layer than the second entity information. The visualization module is further configured to, based on the operation to collapse the third node, determine a position of the third node after hiding the one or more child nodes, adjust a position of a fourth node in the architecture diagram, and hide the one or more child nodes associated with the third node.

[0039] In a possible implementation of the fourth aspect, the interaction module is further configured to receive a user input of an operation of dragging a fifth node in the architecture diagram, and receive a user input of an operation of releasing the fifth node. The visualization module is further configured to hide edges connected to other nodes in the architecture diagram in response to the operation of dragging the fifth node, and to display edges connected to the other nodes in response to the operation of releasing the fifth node.

[0040] In a possible implementation of the fourth aspect, the above-mentioned architecture diagram is an enterprise process architecture diagram, which is used to represent the relationship between enterprise processes.

[0041] In a possible implementation of the fourth aspect, the architecture diagram display system further includes a layout module. The layout module is used to divide the above-mentioned multiple nodes and at least one of the multiple edges to obtain one or more connected domains, wherein the above-mentioned at least one edge is an edge between a node of the core layer and nodes of other layers in the architecture diagram. The layout module is also used to determine the degree and / or number of cores of the nodes in the core layer of the architecture diagram based on the one or more connected domains obtained by the division, and then calculate the density of the nodes in the core layer based on the degree and / or number of cores of the nodes in the core layer, and then determine the arrangement positions of the above-mentioned multiple nodes based on the density of the nodes in the core layer to generate an architecture diagram.

[0042] In a fifth aspect, the present application provides a computing device. The computing device includes a processor and a memory. The processor is configured to execute instructions stored in the memory to implement part or all of the methods described in the first aspect and any implementation thereof, and the second aspect and any implementation thereof.

[0043] In a sixth aspect, the present 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 at least one computing device is configured to execute instructions stored in the memory of at least one computing device, so that the computing device cluster performs part 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, the present application provides a computer program product. This computer program product may be software or a program product containing instructions that can be run on a computing device or stored in any available medium. When this computer program product is run on a computing device or a cluster of computing devices, it causes the computing device or cluster of computing devices to perform part or all of the methods described in the first aspect and any implementation thereof, and the second aspect and any implementation thereof.

[0045] In an eighth aspect, the present application provides a computer-readable storage medium. The computer storage medium includes computer program instructions that, when executed by a computing device or a cluster of computing devices, cause the computing device or cluster of computing devices to perform part or all of the methods described in the first aspect and any implementation thereof, and the second aspect and any implementation thereof. BRIEF DESCRIPTION OF THE DRAWINGS

[0046] FIG1 is a schematic diagram of the structure of an architecture diagram construction system provided in an embodiment of the present application;

[0047] FIG2 is a schematic diagram of an application scenario provided by an embodiment of the present application;

[0048] 3A-3F are schematic diagrams of a user interface provided in an embodiment of the present application;

[0049] FIG4 is a schematic diagram of a method for generating an architecture diagram provided in an embodiment of the present application;

[0050] FIG5 is a schematic diagram of determining the arrangement position of each node in an architecture diagram provided by an embodiment of the present application;

[0051] FIG6 is a schematic diagram of determining the inflection point position of an edge between nodes in the same layer provided by an embodiment of the present application;

[0052] FIG7 is a schematic diagram of the structure of an architecture diagram display system provided in an embodiment of the present application;

[0053] FIG8 is a schematic diagram of the structure of a computing device provided in an embodiment of the present application;

[0054] FIG9 is a schematic diagram of the structure of a computing device cluster provided in an embodiment of the present application;

[0055] FIG10 is a schematic diagram of the structure of another computing device cluster provided in an embodiment of the present application. DETAILED DESCRIPTION

[0056] The technical solution provided by this application is described below in conjunction with the accompanying drawings.

[0057] An architectural diagram is a topological structure consisting of multiple nodes and edges. Each node in an architectural diagram represents an entity, and each edge represents the relationship between the entities represented by the nodes at either end of the edge. Therefore, an architectural diagram can present both entity information and the relationships between them to the user. In practical applications, the greater the number of entities and the more complex the relationships between them, the more nodes and edges in the architectural diagram will be. This can lead to overlapping and intersecting edges, which can cause visual disturbances for the user.

[0058] For example, when managing and operating an enterprise, an architecture diagram (also referred to herein 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 enterprise 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 represents a process architecture, and each edge represents the integration relationship between the process architectures at either end of the edge. A process architecture is a structured, holistic framework for enterprise processes, describing their classification, hierarchy, boundaries, scope, input / output relationships, and other aspects, reflecting the enterprise's operational model and business characteristics. Furthermore, a large process architecture can be further divided, forming multiple lower-level process architectures. In other words, a single process architecture can be associated with multiple lower-level process architectures. Therefore, enterprises often have numerous lower-level process architectures, and the relationships between these lower-level process architectures are complex. Consequently, an enterprise process architecture diagram includes a large number of nodes and edges. It should be understood that when the number of nodes and edges in a diagram is large, edges can easily overlap and intersect, causing significant visual clutter for users.

[0059] To address the above issues, embodiments of the present application provide an architecture diagram construction system. This system analyzes the connections between nodes in an architecture diagram to arrange the positions of each node, making the layout of the nodes in the architecture diagram symmetrical, thereby reducing the overlap and intersection of edges in the architecture diagram and improving the visualization of the architecture diagram.

[0060] FIG1 shows a schematic diagram of the structure of an architecture diagram construction system provided in an embodiment of the present application. It should be understood that FIG1 is merely an exemplary illustration of one way of dividing the structure of the architecture diagram construction system. In actual applications, the structure of the architecture diagram construction system may also have other ways of dividing, which are not specifically limited in the embodiment of the present application. As shown in FIG1 , the architecture diagram construction system 100 includes an acquisition module 101, a layout module 102, and a visualization module 103. Optionally, the architecture diagram construction system 100 may also include an interaction module 104.

[0061] The acquisition module 101 is used to obtain multiple entity information and the relationships between entity information. Specifically, the acquisition module 101 can obtain multiple entity information and the relationships between entity information from the database, or can obtain multiple entity information and the relationships between entity information based on operations input by a user (e.g., an administrator user). Entity information can be relevant information about an entity with hierarchical information, such as relevant information about a process architecture (e.g., the code and name of the process architecture), relevant information about an organizational unit (e.g., the name of a department), relevant information about a directory (e.g., the code and name of a directory), etc. The relationships between entity information include hierarchical relationships and / or integration relationships. Hierarchical relationships refer to superior-subordinate relationships or parent-child relationships between entity information, and integration relationships refer to input / output relationships between entity information. The acquisition module 101 is also used to send the acquired multiple entity information and the relationships between entity information 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 the entity information. Specifically, the layout module 102 determines multiple nodes and multiple edges based on the multiple entity information and the relationships between the entity information, where each of the multiple nodes indicates one entity information among 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. The layout module 102 divides the multiple nodes and at least one of the multiple edges to obtain one or more connected domains, wherein the at least one edge is an edge between a node in the core layer and nodes in other layers in the architecture diagram. The nodes in the core layer can be specified by the user or set by the layout module 102. Then, the layout module 102 determines the degree and / or number of cores of the nodes in the core layer based on the one or more connected domains obtained by the division, and then calculates the density of the nodes in the core layer based on the degree and / or number of cores of the nodes in the core layer. Layout module 102 then determines the arrangement of the multiple nodes based on the density of the core layer nodes, generating an architectural diagram. In the architectural diagram, the core layer nodes are arranged based on 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 based on the relationship between the arrangement of the core layer nodes and the entity information indicated by the nodes. Layout module 102 is further configured to send the generated architectural diagram to 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 the functionality of the layout module 102 described above indicates that the nodes in the architecture diagram generated by this module are arranged in a symmetrical manner, resulting in a shorter average length of edges and fewer intersections between edges in the architecture diagram, providing a better visual experience for users.

[0064] Optionally, the visualization module 103 is further configured to optimize the architecture diagram generated by the layout module 102 and display the optimized architecture diagram. It should be understood that the optimized architecture diagram has a better visual effect and is more convenient for users to observe.

[0065] Optionally, the optimization of the architecture diagram by the visualization module 103 includes any one or more of the following:

[0066] ①. Configure different graphics elements 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 among the multiple nodes 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 broken lines. The positions of the inflection points of the broken lines may be determined by the layout module 102, and the positions of the inflection points of the broken lines refer to the relative positions of the inflection points of the broken lines and the nodes at both ends of the broken lines.

[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 of the multiple edges in the architecture diagram.

[0072] ⑦. Evenly deploy the endpoints of the edges connecting any one of the multiple nodes on one or more sides of the node.

[0073] In some embodiments, the architecture diagram construction system 100 may further include an interaction module 104 .

[0074] The interaction module 104 is used to receive user input of operations on the architecture diagram and send the user operations on the architecture diagram to the visualization module 103. Accordingly, the visualization module 103 is also used to update the architecture diagram according to the user operations on the architecture diagram and display the updated architecture diagram.

[0075] Optionally, the current architecture diagram includes node a, node a indicates the first entity information among the above-mentioned multiple entity information, and the first entity information is associated with one or more entity information of the lower layer. Then, the interaction module 104 can receive the operation of expanding node a input by the user, and then send the above-mentioned operation of expanding node a to the visualization module 103. The visualization module 103 updates the architecture diagram according to the above-mentioned operation of expanding node a, and displays the updated architecture diagram. Compared with 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 of the lower layer of the first entity information. Moreover, the position of node b in the architecture diagram has been adjusted, wherein the node b after the position adjustment is not blocked by the child nodes associated with node a.

[0076] Optionally, the current architecture diagram includes child nodes associated with node c, and the child nodes associated with node c indicate the entity information in the lower layer associated with the second entity information in the plurality of entity information. Then, the interaction module 104 may also receive a user input for collapsing node c, and then transmit the collapsing node c operation to the visualization module 103. The visualization module 103 updates the architecture diagram based on the collapsing node c operation 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, resulting in a more aesthetically pleasing arrangement of the nodes in the architecture diagram.

[0077] As can be seen from this, the architecture diagram construction system 100 provided in this embodiment of the present application allows users to expand or collapse any node in the architecture diagram, meaning that users can flexibly define the level of detail of the entity information displayed in the architecture diagram based on their needs. Furthermore, when expanding or collapsing, other nodes and edges in the architecture diagram are adaptively adjusted, making the updated architecture diagram more aesthetically pleasing.

[0078] Optionally, the current architecture diagram includes node e. Then, the interaction module 104 may further receive an operation of dragging node e input by the user, and then send the operation of dragging node e to the visualization module 103. The visualization module 103 updates the architecture diagram based on the operation of dragging node e, and displays the updated architecture diagram, wherein the updated architecture diagram hides the edges connected to other nodes in the original diagram. Furthermore, the interaction module 104 may further receive an operation of releasing node e input by the user, and then send the operation of releasing node e to the visualization module 103. The visualization module 103 updates the architecture diagram again based on the operation of releasing node e, and displays the updated architecture diagram again, wherein the updated architecture diagram redisplays the hidden edges.

[0079] It should be understood that when a user drags a node in the architecture diagram, visualization module 103 hides the edges connecting other nodes in the architecture 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, visualization module 103 redisplays the hidden edges so that the user's observation of other nodes is not affected.

[0080] In the embodiment of the present 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 construction system 100 is a software system, it can be deployed in a data center within a cloud environment. For example, the architecture diagram construction system 100 is a cloud service provided by a cloud service provider. In a specific implementation, the architecture diagram construction system 100 can be independently deployed on a computing instance within the cloud environment's data center, or distributedly deployed across multiple computing instances within the cloud environment's data center. Computing instances include servers, virtual machines, and containers. As shown in FIG2 , the architecture diagram construction system 100 is deployed in a data center within a cloud environment and abstracted by the cloud service provider as a cloud service. An administrator user can log in to the cloud platform through a client webpage, select and purchase the cloud service corresponding to the architecture diagram construction system 100 on the cloud platform. After successful purchase, the administrator user can provide the architecture diagram construction system 100 with information about multiple entities and relationships between these entities through the cloud platform. When a regular user wishes to view an architecture diagram, they log in to the cloud platform through a local client webpage and, through their operations, cause the architecture diagram construction 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 construction system 100 can also be deployed on a terminal device. For example, the architecture diagram construction system 100 is source code or a component that can run on one or more terminal devices. Terminal devices include terminal servers, desktop computers, smartphones, laptops, tablet computers, etc. In one possible deployment method, the acquisition module 101 and layout module 102 in the architecture diagram construction system 100 are deployed on a back-end server, while the visualization module 103 and interaction module 104 are deployed on a front-end server. For a user, when the user wants to view the architecture diagram, the back-end server generates an architecture diagram based on the obtained multiple entity information and the relationships between the entity information, and returns the generated architecture diagram to the front-end server. Furthermore, the front-end server can also optimize the architecture diagram and present the optimized architecture diagram to the user. Furthermore, the user can also use the front-end server to perform interactive operations such as expanding, collapsing, or dragging nodes in the architecture diagram. The front-end server will update the architecture diagram based on these interactive operations and present the updated architecture diagram to the user.

[0083] The architecture diagram construction system 100 can also be deployed in a distributed manner in different environments, including terminal devices and cloud data centers. For example, the acquisition module 101 and layout module 102 of the architecture diagram construction system 100 are deployed in a cloud data center, while the visualization module 103 and interaction module 104 are deployed on the terminal device.

[0084] The following describes the architecture diagram construction system 100 from a user's perspective through the scenarios described in FIG. 3A to FIG. 3E .

[0085] This embodiment takes the 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, the integration relationship between enterprise processes, etc.

[0086] As shown in FIG3A , the architecture diagram construction 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 an undo button, a restore button, a refresh button, a favorite button, a download button, etc. The directory bar is used to display relevant information about the enterprise process, and specifically may include the code, name, and hierarchical information of the process architecture corresponding to the enterprise process. For example, the information of the process architecture in the directory bar shown in FIG3A includes: code 1.0, name "Integrated Product Development"; code 2.0, name "Manage Finance"; code 3.0, name "Manage Business Change and Information Technology (Manage BT&IT)"; code 4.0, name "Channel Sales"; code 5.0, name "Carrier Business CRM". The display bar is used to present the architecture diagram to the user.

[0087] As shown in Figure 3B, when the user focuses on the relevant enterprise process of "Manage Finance", the user can click on "2.0 Management Finance" in the directory bar. Accordingly, the architecture diagram construction system 100 detects the click operation on "2.0 Management Finance" in the directory bar, and in response to the operation, displays the architecture diagram shown in Figure 3B in the display bar. For the convenience of description, the node used to indicate "Integrated Product Development" in the architecture diagram is referred to as node 1.0, the node indicating "Manage Finance" is referred to as node 2.0, the node indicating "Manage BT&IT" is referred to as node 3.0, the node indicating "Channel Sales" is referred to as node 4.0, and the node indicating "Operator Business CRM" is referred to as node 5.0. Similarly, other nodes in the architecture diagram are also described in the above manner.

[0088] As can be seen from 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 learn that the enterprise processes related to "Managing Finance" include "Integrated Product Development", "Managing BT&IT", "Channel Sales" and "Carrier Business CRM", as well as the integration relationship 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), so as to facilitate users to obtain relevant information about the enterprise processes under "Management Finance", for example, the information of the following process architecture shown in Figure 3B: coded as 2.1, named "Management Plan Budget Forecast"; coded as 2.2, named "Management Operator 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 , if a user wishes to further view "Manage Pricing" under "Manage Finance," they can click on node 2.5 in the architecture diagram shown in Figure 3B . Accordingly, architecture diagram construction system 100 detects the click on node 2.5 and, in response, displays the architecture diagram shown in Figure 3C in the display bar. It should be noted that to facilitate the display of this architecture diagram, the directory bar is hidden in the user interface shown in Figure 3C .

[0091] As shown in Figure 3C, the architecture diagram has newly added nodes 2.5.1 through 2.5.6, as well as edges between these newly added nodes and other nodes. This architecture diagram allows users to access information related to the enterprise processes underlying "Manage Pricing." For example, the following process architecture shown in Figure 3C is shown: coded 2.5.1, titled "Manage Business Model and Pricing Rules"; coded 2.5.2, titled "Manage Product Pricing"; coded 2.5.3, titled "Manage Model / Pricing Level / Pricing Authorization"; coded 2.5.4, titled "Manage Launch Pricing"; coded 2.5.5, titled "Manage Pricing Review and Forecasting"; and coded 2.5.6, titled "Manage Operational Pricing." Furthermore, users can also access the integration relationships between the enterprise processes underlying "Manage Pricing" and other enterprise processes. It should be understood that although the architecture diagram shown in Figure 3C contains a large number of nodes and edges, the layout of the 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 processes indicated by the nodes is also relatively clear, allowing users to better understand the enterprise processes and the relationship between enterprise processes through the architecture diagram.

[0092] As shown in Figure 3D , if the user wishes to further view "Management, Accounting, and Reporting," they can also expand node 2.6 in the architecture diagram shown in Figure 3C . Accordingly, the architecture diagram construction 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 to facilitate the display of 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 edges between these new nodes and node 2.5.6. The edge between nodes 2.6 and 2.5.6 is hidden. This architecture diagram allows users to access relevant information about the enterprise processes beneath "Management Accounting and Reporting." For example, the following process architecture shown in Figure 3D is coded 2.6.1 and named "Inventory Accounting"; coded 2.6.2 and named "Management Operations Reporting and Accounting." Furthermore, users can also see the integrated relationship between the enterprise processes beneath "Management Accounting and Reporting" and "Management Operations Pricing." Furthermore, since the position of node 2.4 is 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 collapse node 2.6 in the architecture diagram shown in FIG3D . Accordingly, the architecture diagram construction system 100 detects the collapse operation on node 2.6 and, in response, displays the architecture diagram shown in FIG3C in the display bar. This allows the user to view the relationship between the enterprise process indicated by node 2.5.6 and the enterprise process indicated by node 2.6, thereby understanding the enterprise process indicated by node 2.5.6 from a higher-level perspective.

[0095] As shown in FIG3E , the user can also drag node 5.0 in the architecture diagram shown in FIG3D . Accordingly, the architecture diagram construction system 100 detects the drag operation on node 5.0 and, in response to the operation, displays the architecture diagram shown in FIG3E in the display bar. As can be seen from FIG3E , during the process of dragging node 5.0, the architecture diagram does not display the edges connected to other nodes. However, since the architecture diagram displays the edges connected to node 5.0, the user can still observe the edges connected to node 5.0 during the process of dragging node 5.0, thereby understanding the enterprise processes related to "Carrier Business CRM" and the integration relationship between these enterprise processes.

[0096] As shown in Figure 3F , the user can also release node 5.0. Accordingly, the architecture diagram construction 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, thereby not affecting the user's ability to view the enterprise processes indicated by other nodes. It should be noted that to facilitate the display of the architecture diagrams, the user interfaces shown in Figures 3E and 3F hide the directory bar.

[0097] It should be understood that Figures 3A-3F illustrate only one application scenario of the architecture diagram construction system 100. In practice, the architecture diagram construction system 100 can also be applied to a variety of other scenarios. For example, the architecture diagram generated by the architecture diagram construction system 100 can also be an organizational chart, which is used to present the organizational structure and functional relationships of an enterprise to users. In another example, the architecture diagram generated by the architecture diagram construction system 100 can also be an architecture diagram of a network directory, which is used to present the network directory to users, making it easier for users to find and browse the required information.

[0098] The functions of the architecture diagram construction system 100 will be further described below with reference to the flowchart of the method for generating an architecture diagram shown in FIG4 .

[0099] S101: The architecture diagram construction system 100 obtains a plurality of entity information and relationships between the entity information.

[0100] The description of entity information and the relationship between entity information can be found in the previous text and will not be repeated here.

[0101] Specifically, the architecture diagram construction system 100 may obtain the plurality of entity information and the relationships between the entity information in any of the following ways:

[0102] Method 1: The architecture diagram construction system 100 obtains a plurality of entity information and the relationships between the entity information from a database.

[0103] Specifically, the database stores a plurality of entity information and the relationships between the entity information. The architecture diagram construction system 100 can obtain the plurality of entity information and the relationships between the entity information by accessing the database.

[0104] Mode 2: The architecture diagram construction system 100 receives an operation input by a user (eg, an administrator user), and obtains a plurality of entity information and relationships between the entity information according to the operation input by the user.

[0105] Specifically, the architecture diagram construction system 100 provides an access interface, such as an application programming interface (API) or a graphical user interface (GUI). A user can upload a file package to the architecture diagram construction system 100 through the access interface, wherein the file package includes multiple entity information and relationships between the entity information. After the architecture diagram construction system 100 receives the file package uploaded by the user, it can obtain the multiple entity information and the relationships between the entity information by parsing the file package. In addition, the user can also create multiple entity information and relationships between the entity information on the architecture diagram construction system 100 through the access interface, so that the architecture diagram construction system 100 can obtain the multiple entity information and relationships between the entity information.

[0106] S102: The architecture diagram construction system 100 generates an architecture diagram according to a plurality of entity information and relationships between the entity information.

[0107] Specifically, the architecture diagram construction system 100 may generate an architecture diagram based on a plurality of entity information and the relationships between the entity information, including the following steps:

[0108] Step 1: The architecture diagram construction system 100 determines multiple nodes and multiple edges based on multiple entity information and relationships between the entity information.

[0109] Each of the multiple nodes indicates one entity information among 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: The architecture diagram construction system 100 divides the multiple nodes and multiple edges to obtain one or more connected domains.

[0111] Specifically, the architecture diagram construction system 100 divides the aforementioned multiple nodes and at least one of the aforementioned multiple edges to obtain one or more connected domains. The aforementioned multiple nodes include nodes in the core layer and nodes in non-core layers (i.e., nodes in other layers). The core layer nodes and nodes in other layers can be user-specified or dynamically configured by the architecture diagram construction system 100 based on actual conditions. For example, nodes corresponding to entity information that the user wants to observe can be used as core layer nodes. The aforementioned at least one edge is an edge between a node in the core layer and a node in another layer.

[0112] Step 3: The architecture diagram construction system 100 determines the degree and / or number of cores of the nodes in the core layer according to the one or more connected domains obtained by the division.

[0113] Specifically, taking a connected domain as an example, the architecture graph construction system 100 determines the degree of the nodes in the core layer of the connected domain. The architecture graph construction system 100 divides the connected domain into sections to obtain at least one k-core graph, thereby determining the number of cores of the nodes in the core layer of the connected domain. The number of cores of the nodes in the core layer of the connected domain is the k value corresponding to the maximum k-core graph in which the node is located. The maximum 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 diagram construction system 100 determines the degree and core count of the nodes in the core layer of a connected domain. In actual applications, when multiple connected domains are obtained by dividing in the above step 2, the architecture diagram construction system 100 can also use the above method to determine the degree and core count of the nodes in the core layer of other connected domains, thereby obtaining the degree and core count of all nodes in the core layer.

[0115] Step 4: The architecture diagram construction system 100 calculates the density of the nodes in the core layer according to the degree and / or number of cores of the nodes in the core layer.

[0116] Specifically, when the architecture diagram construction system 100 calculates the closeness of the core layer nodes based on the degree of the core layer nodes, the closeness of the core layer nodes is the degree of the core layer nodes. When the architecture diagram construction system 100 calculates the closeness of the core layer nodes based on the number of cores in the core layer nodes, the closeness of the core layer nodes is the number of cores in the core layer nodes. When the architecture diagram construction system 100 calculates the closeness of the core layer nodes based on the degree and number of cores in the core layer nodes, the closeness of the core layer nodes may be a weighted average of the degree and number of cores in the core layer nodes.

[0117] Step 5: The architecture diagram construction system 100 determines the arrangement positions of the above-mentioned multiple nodes according to 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 in the core layer, where the density of the middle nodes in the core layer is higher than that of the nodes on either side. The architecture diagram construction system 100 then determines the arrangement of nodes in other layers based on the relationship between the arrangement of the nodes in the core layer and the entity information indicated by the nodes.

[0119] In some embodiments, the architecture diagram construction system 100 determines the arrangement of the core layer nodes based on the density of the core layer nodes, including: taking a connected domain as an example, the architecture diagram construction system 100 arranges the core layer nodes in the connected domain from the middle to the sides in descending order of density, such that the density of the middle core layer nodes in the connected domain is higher than the density of the nodes on the sides. It should be understood that when multiple connected domains are obtained by division in step 2, the architecture diagram construction system 100 can also determine the arrangement of the core layer nodes in other connected domains according to the above method, which will not be described in detail here.

[0120] In some embodiments, the architecture diagram construction system 100 determines the arrangement positions of the nodes of other layers based on the arrangement positions of the nodes of the core layer and the relationship between the entity information indicated by the nodes, including: taking a node in other layers (assuming it is node n) as an example, the architecture diagram construction system 100 determines the node of the core layer (assuming it is node m) connected to node n based on the relationship between the entity information indicated by the nodes, wherein the number of nodes m can be one or more. Afterwards, the architecture diagram construction system 100 determines the arrangement position of node n based on the arrangement position of node m, wherein the arrangement position of node n can be as close as possible to the arrangement position of node m, so that the edge between node n and node m is shorter. It should be understood that for another part of the nodes in other layers, the architecture diagram construction system 100 can also determine their arrangement positions according to the above method, which will not be described in detail here.

[0121] Through steps 1 to 5 above, the nodes with high density belonging to the core layer in the connected domain can be arranged in the middle, and the nodes with low density can be arranged on both sides. The nodes of other layers are arranged close to the nodes of the core layer to which they are connected, so that the layout of the nodes in the connected domain is more symmetrical, further reducing the intersection points between the edges in the connected domain and the average length of the edges, and improving the visual effect of the entire architecture diagram.

[0122] For example, taking the architecture diagram shown in FIG. 3C as an example, how the architecture diagram construction system 100 determines the arrangement position of each node in the architecture diagram is described.

[0123] The multiple nodes are Node 1.0, Node 3.0, Node 4.0, Node 5.0, the child nodes associated with Node 2.0 (i.e., Node 2.1 to Node 2.7), and the child nodes associated with Node 2.5 (i.e., Node 2.5.1 to Node 2.5.6). Of the multiple nodes mentioned above, the core layer nodes include Node 2.5.1 to Node 2.5.6, and the remaining nodes are nodes of other layers.

[0124] As shown in FIG5 , the architecture diagram construction system 100 obtains the graph shown in FIG5 (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 domains, namely, the connected domain A and the connected domain B shown in FIG5 (b). Afterwards, the connected domain A and the connected domain B are processed separately. Specifically,

[0125] For connected domain A: In connected domain A, determine that the degree of node 2.5.1 is 1. Partition connected domain A to obtain a 1-core graph (i.e., connected domain A). In the 1-core graph, the core number of node 2.5.1 is 1. Therefore, the closeness of node 2.5.1 is 1.

[0126] For connected domain B: In connected domain B, the degrees of nodes 2.5.2 to 2.5.6 are determined to be 2, 1, 2, 3, and 7, respectively. Connected domain 2 is divided to obtain the 1-core graph and 2-core graph shown in Figure 5 (c). In the 2-core graph, the core number of nodes 2.5.2, 2.5.5, and 2.5.6 is 2. In the 1-core graph, the core number of nodes 2.5.3 and 2.5.4 is 1. Therefore, the closeness of nodes 2.5.2 to 2.5.6 is 2, 1, 1.5, 2.5, and 4.5, respectively. Correspondingly, the arrangement order of the core layer nodes in connected domain 2 can be node 2.5.2, node 2.5.5, node 2.5.6, node 2.5.4, and node 2.5.3.

[0127] Based on the arrangement order of the core layer nodes in connected domains A and B, the arrangement order of the core layer nodes in the architecture diagram can be 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 as the average of the node degree and the number of cores of the node.

[0128] Next, the architecture diagram construction system 100 determines the arrangement positions of the nodes of other layers. Specifically, the nodes in the upper layer of the core layer include node 1.0, node 3.0, node 4.0 and node 5.0. For the nodes in the upper layer of the above-mentioned 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 node 2.5.3, node 2.5.4, node 2.5.5, and node 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 in the upper layer of the core layer is node 3.0, node 1.0, node 5.0, and node 4.0. It can also 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 diagram construction system 100 may also adjust the arrangement order of some or all of the nodes in the other layers, so that the number of intersections between edges connecting the nodes in the other layers after the adjustment is less than the number before the adjustment. Specifically, the architecture diagram construction system 100 may adjust the arrangement order of some or all of the nodes in the other layers by randomly adjusting the arrangement order of some or all of the nodes in the other layers, and then, based on the adjusted arrangement order, determining whether the number of intersections between edges connecting the nodes in the other layers after the adjustment is less than the number before the adjustment. If so, the arrangement order of some or all of the nodes in the other layers is adjusted.

[0130] S103: The architecture diagram construction system 100 displays the architecture diagram.

[0131] In order to further improve the visualization effect of the architecture diagram, the architecture diagram construction system 100 may further perform the following steps (ie, S104 ) before performing the above S103 .

[0132] S104: The architecture diagram construction system 100 optimizes the architecture diagram.

[0133] Specifically, the architecture diagram construction system 100 can optimize the architecture diagram by 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 side or multiple sides of the node.

[0135] Because a node in an architecture diagram may be connected to multiple nodes (i.e., multiple edges may be connected to the node), there may be overlap and intersection between the multiple edges connected to the node. To reduce overlap and intersection between the 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 broken lines.

[0136] Taking node s in the architecture diagram as an example, the architecture diagram construction system 100 determines the position of the endpoints of the edges connected to node s based on the relative position of node s and the other end node of the edge connected to it, as well as the number of edges connected to node s, wherein the endpoints of the edges connected to node s are evenly deployed on one side or multiple sides of node s. It should be understood that for other nodes in the architecture diagram, the architecture diagram construction system 100 can also use the above method to determine the position of the endpoints of the edges connected to other nodes, which will not be described in detail here. For example, in the architecture diagram shown in Figure 3C above, the endpoints of the edges connected to each node are evenly deployed on one side or both sides of the node.

[0137] Step 2: When an edge in the architecture diagram is represented by a broken line, 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] Since the edges in the architecture diagram are represented by broken lines, the location of the edge's inflection point may also affect the stacking and intersection of edges in the architecture diagram. To reduce the stacking and intersection of edges in the architecture diagram, the architecture diagram construction system 100 can determine the location of the edge's inflection point based on the relative positions of the nodes at both ends of the edge. Specifically, this may include the following two situations:

[0139] Case 1: The location of the inflection point of the edge between nodes in different layers

[0140] Still taking node s as an example, assuming that node s is connected to multiple nodes of different layers, and the multiple nodes of different layers include node t, then the farther the relative positions of node s and node t are, the closer the distance between the inflection point of the edge between node s and node t and the endpoint of the edge on node s is. The inflection point here is the inflection point 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 node 2.1 and node 2.7 respectively, and node 2.5.5 is a node of a different layer from node 2.1 and node 2.7. Since the relative position of node 2.5.5 to node 2.1 is farther than the relative position of node 2.5.5 to node 2.7, the distance between the inflection point of the edge between node 2.5.5 and node 2.1 and the endpoint of the edge on node 2.5.5 is closer.

[0141] It should be understood that for edges between nodes in other different layers in the architecture diagram, the architecture diagram construction system 100 can also use the above method to determine the position of the inflection point of the edge, which will not be described in detail here.

[0142] Optionally, after determining the locations of the inflection points of multiple edges between nodes at different layers in the architecture diagram, the architecture diagram construction system 100 further adjusts the locations of the inflection points of the multiple edges to reduce intersections and overlap between edges in the architecture diagram. Here, the multiple edges between nodes at different layers include edges between multiple nodes and nodes at different layers. For example, in the architecture diagram shown in FIG3C above, the edges between all nodes in the core layer and all nodes in other layers.

[0143] Case 2: The location of the inflection point of the edge between nodes in the same layer

[0144] Still taking node s as an example, assuming that node s is connected to multiple nodes on the same layer, and the multiple nodes on the same layer include node r, then the closer the relative positions of node s and node r are, the closer the distance between the inflection point of the edge between node s and node r and the endpoint of the edge on node s is. The inflection point here is the inflection point 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 node 2.5.5 and node 2.5.4 respectively, and these three nodes are nodes on the same layer. Since the relative position of node 2.5.2 and node 2.5.5 is closer than the relative position of node 2.5.2 and node 2.5.4, the inflection point of the edge between node 2.5.2 and node 2.5.5 is closer to the endpoint of the edge on node 2.5.2.

[0145] It should be understood that for edges between nodes in other different layers in the architecture diagram, the architecture diagram construction system 100 can also use the above method to determine the position of the inflection point of the edge, which will not be described in detail here.

[0146] In some embodiments, the architecture diagram construction system 100 can determine the positions of the inflection points of all edges between nodes of the same layer in the following manner: the architecture diagram construction system 100 takes the edges between nodes of the same layer as nodes (hereinafter referred to as edge nodes), and takes the intersection relationship between the edges as the edges between the edge nodes, thereby obtaining a corresponding graph (hereinafter referred to as the first graph). Then, starting from the edge node with the smallest degree in the first graph, it removes them one by one until a bipartite graph is obtained, and then determines the two parts of the bipartite graph. For the edge nodes included in each part of the bipartite graph, the architecture diagram construction system 100 generates a corresponding graph (hereinafter referred to as the second graph) based on 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 graph based on the second graph, wherein the edges indicated by the edge nodes included in different parts of the bipartite graph are located on different sides. In this embodiment, the intersection relationship between the edges means that when two edges are located on the same side, the two edges intersect with each other. For example, in the architecture diagram 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 located on the same side, the two will intersect. The covering relationship between edges means that when two edges are located 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 approach, the architecture diagram construction system 100 can use the bipartite graph to place edges with intersection relationships on different sides, thereby reducing the number of intersections between edges on the same layer. Furthermore, the architecture diagram construction system 100 can also use the second graph to determine the locations of inflection points of edges on the same side, thereby reducing the number of intersections between edges with overlapping relationships.

[0148] For example, taking the architecture diagram shown in FIG. 3C as an example, how the architecture diagram construction system 100 determines the positions of the inflection points of the edges between the nodes of the core layer in the architecture diagram is described.

[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 eight edges above, the edges that have a crossing relationship include: edge ① and edge ④, edge ② and edge ⑤, and edge 4 and edge 5. The edges with 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 diagram construction system 100 uses the eight edges described above as edge nodes and the intersection relationships between the eight edges as edges between edge nodes, resulting in a graph as shown in Figure 6 (a). In this graph, node ① indicates edge ①, node ② indicates edge ②, and so on, node ⑧ indicates edge ⑧. Because this graph is a bipartite graph, the architecture diagram construction system 100 can determine from this graph 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 diagram construction system 100 generates a graph as shown in (b) of FIG6 based on the coverage relationship between the above 8 edges, in which node ② indicates edge ②, node ③ indicates edge ③, node ④ indicates edge ④, and node ⑦ indicates edge ⑦. Then, the positions of the inflection points of edges ②, edge ③, edge ④, and edge ⑦ are determined based on the direction of the edges in the graph, wherein the direction of the edges in the graph represents the coverage relationship of the edges indicated by the edge nodes at both ends. For example, the edge between node ② and node ③ points to node ③, indicating that edge ② can cover edge ③. Based on this, the architecture diagram construction system 100 can set the position of the inflection point of edge ② to a position farther away from the endpoint of edge ② on node 2.5.2. For details, see the positions of the inflection points of edges ② and ③ in the architecture diagram shown in FIG3C.

[0152] Similarly, for the edge nodes in the second part, the architecture diagram construction system 100 generates a graph as shown in (c) in Figure 6 based on the coverage relationship between the above-mentioned 8 edges, and then determines the positions of the inflection points of edges ①, ⑤, ⑥ and ⑧ based on the directions of the edges in the graph. It is worth noting that in this embodiment, in order to make the edges between the nodes of the core layer evenly distributed on different sides, the graph shown in (b) in Figure 6 is generated based on the coverage relationship between edge ② and edge ③, edge ② and edge ④, edge ② and edge ⑦, edge ④ and edge ③, and edge ④ and edge ⑦, and the graph shown in (c) in Figure 6 is generated based on the coverage relationship between edge ⑤ and edge ⑥ and edge ⑤ and edge ⑧. It should be understood that in actual applications, the graphs shown in (b) and (c) in Figure 6 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, the edges in the architecture diagram shown in FIG3C above are all 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, for example, polylines of different colors or polylines of different thicknesses.

[0155] Step 5: The architecture diagram construction system 100 uses different primitives to represent the start point or end point of any of the multiple edges. Different primitives may include primitives of different colors, shapes, or sizes. For example, in the architecture diagram shown in FIG3C above, the start point of the edge between nodes 2.5.1 and 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 primitives for nodes at different layers in the architecture diagram, wherein the different primitives include, for example, primitives of different colors, shapes, and sizes.

[0157] Step 7: The architecture diagram construction system 100 displays the node identifier 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, the node identifier in the architecture diagram shown in FIG3C above 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 construction system 100, the user may also need to operate the architecture diagram. For example, the user may expand a node in the architecture diagram to view the entity information of the lower layer associated with the entity information indicated by the expanded node. For another example, the user may collapse a node in the architecture diagram to view the entity information of the upper layer associated with the entity information indicated by the collapsed node. For another example, the user may drag a node in the architecture diagram to a specified position as needed. Therefore, after executing the above S103, the architecture diagram construction system 100 may also perform the following steps (i.e., S105):

[0159] S105 : In response to the operation input by the user, the architecture diagram construction system 100 updates the architecture diagram and displays the updated architecture diagram.

[0160] The following three cases describe this step:

[0161] Case 1: The user input operation is to expand node a in the architecture diagram

[0162] Specifically, the architecture diagram construction system 100 receives an operation input by a user to expand node a in the architecture diagram, then updates the architecture diagram according to the operation to expand node a, and then displays the updated architecture diagram. It should be understood that the embodiments of the present application do not limit the operation by which the user expands node a in the architecture diagram. For example, it can be clicking on node a in the architecture diagram, selecting a relevant option in the user interface for expanding node a, or filling in relevant information in the user interface for expanding node a.

[0163] In some embodiments, node a indicates the first entity information among the plurality of entity information, and the first entity information is associated with one or more entity information in a lower layer. The architecture diagram construction system 100 then updates the architecture diagram based on the aforementioned operation of expanding node a, including: determining the position of the child node associated with node a, and adjusting the position of node b in the architecture diagram so that when the updated architecture diagram is displayed, node b is not obscured by the child node associated with node a. 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 in a lower layer of the first entity information. It should be understood that the number of child nodes associated with node a included in the updated architecture diagram may be one or more. When the diagram includes a child node associated with node a, the child node indicates a piece of entity information in a lower layer of the first entity information. When the diagram includes multiple child nodes associated with node a, each of the multiple child nodes indicates a piece of entity information in a lower layer of the first entity information.

[0164] In some embodiments, the architecture diagram construction system 100 determines the position of the child node associated with node a, including: the architecture diagram construction system 100 determines the position of the child node according to the position of the node connected to the child node in the architecture diagram.

[0165] Optionally, when node a is associated with multiple child nodes, after determining the positions of the multiple child nodes, the architecture diagram construction system 100 may further adjust the arrangement order of some or all of the multiple child nodes, wherein the number of intersections between the edges connected to the multiple child nodes after the adjustment is less than the number before the adjustment. In a specific implementation, the architecture diagram construction system 100 may adjust the arrangement order of some or all of the multiple child nodes in the following manner: the architecture diagram construction system 100 randomly adjusts the arrangement order of some or all of the multiple child nodes, and then determines, based on the adjusted arrangement order, whether the number of intersections between the edges connected to the multiple child nodes after the adjustment is less than the number before the adjustment. If so, the arrangement order of some or all of the multiple child nodes is adjusted.

[0166] In some embodiments, node b is 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, including: the architecture diagram construction system 100 adjusts the position of node b based on the position of node a before expansion and the positions of the child nodes associated with node a, where the number of nodes b can be one or more.

[0167] For example, using the architecture diagram shown in Figures 3C and 3D above as an example, the following describes how the architecture diagram construction system 100 updates the architecture diagram based on the user's input of the node expansion operation. As can be seen from Figures 3C and 3D, when the architecture diagram construction system 100 detects the user's input of the node expansion operation in the architecture diagram, in response to this operation, the architecture diagram construction 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., node 2.6.1 and node 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 construction system 100 also moves node 2.3 to the right so that node 2.3 is not blocked by nodes 2.6.1 and 2.6.2.

[0168] Case 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 plurality of entity information, and the second entity information is associated with one or more entity information in a lower layer. The architecture diagram includes child nodes associated with node c, and the child nodes associated with node c indicate entity information in a lower layer of the second entity information. It should be understood that the number of child nodes associated with node c in the architecture diagram may be one or more. When there is one child node associated with node c in the architecture diagram, the child node indicates one entity information in a lower layer of the second entity information. When there are multiple child nodes associated with node c in the architecture diagram, each of the multiple child nodes indicates one entity information in a lower layer of the second entity information.

[0170] Specifically, the architecture diagram construction system 100 receives an operation input by a user to collapse node c in the architecture diagram, then updates the architecture diagram according to the operation to collapse node c, and then displays the updated architecture diagram. It should be understood that the embodiments of the present application do not limit the operation by which the user collapses node c in the architecture diagram. For example, it may be clicking on a child node associated with node c in the architecture diagram, selecting a relevant option for collapsing node c in the user interface, or filling in relevant information for collapsing node c in the user interface.

[0171] In some embodiments, the architecture diagram construction system 100 updates the architecture diagram based on the operation of collapsing node c, including: the architecture diagram 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 diagram to ensure a pleasing arrangement of nodes when the updated architecture diagram is displayed. The architecture diagram 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 affected by the aforementioned folding operation. That is, after folding node c, if the position of node d is not adjusted, the distance between node d and node c after its child nodes are hidden is large, thereby 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, including: the architecture diagram construction system 100 adjusts the position of node d based on the positions of the child nodes associated with node c and the position of node c after its child nodes are hidden. The number of nodes d can be one or more.

[0173] For example, using the architecture diagram shown in Figures 3C and 3D above as an example, we will describe how architecture diagram construction system 100 updates the architecture diagram based on a user-input operation to collapse nodes. When architecture diagram construction system 100 detects a user-input operation to collapse node 2.6 in the architecture diagram, in response to this operation, architecture diagram construction system 100 hides 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, and displays the edge between node 2.6 and node 2.5.6. Architecture diagram construction system 100 also moves node 2.3 to the left, resulting in a more aesthetically pleasing arrangement of the nodes in the updated architecture diagram.

[0174] Case 3: The user input operation is to drag the node e in the architecture diagram

[0175] Specifically, the architecture diagram construction system 100 receives an operation of dragging a node e in the architecture diagram input by the user, updates the architecture diagram according to the operation of dragging the node e, and then displays the updated architecture diagram.

[0176] In some embodiments, the architecture diagram construction system 100 updates the architecture diagram based on the above-mentioned operation of dragging node e, including: the architecture diagram construction system 100 determines whether the number in the current page is less than a threshold. If so, the architecture diagram construction system 100 hides the edges connected to other nodes in the architecture diagram, and dynamically displays node e and the edges connected to node e based on the dynamic position of node e. If not, the architecture diagram construction system 100 dynamically displays node e and the edges connected to node e based on the dynamic position of node e, and displays the edges connected to other nodes in the architecture diagram. The graph elements in the current page include the nodes in the current page and the edges between the nodes. The threshold can be set by the user or dynamically set by the architecture diagram construction system 100 based on actual conditions. For example, the threshold can be set to the number of graph elements corresponding to the critical state of interaction jamming and smooth interaction.

[0177] It should be understood that for simplicity, this step does not describe in detail how the architecture diagram construction system 100 displays the edges connected to the node e and the edges of other nodes in the architecture diagram. The specific implementation ideas can be found in the above S103.

[0178] Case 4: The user input operation is the above node e

[0179] Specifically, the architecture diagram construction system 100 receives an operation of releasing a node e in the architecture diagram input by the user, and then updates the architecture diagram according to the operation of releasing the node e, and then displays the updated architecture diagram.

[0180] In some embodiments, the architecture diagram construction system 100 updates the architecture diagram based on the operation of releasing node e, including: the architecture diagram construction system 100 displays node e and the edges connected to node e based on the position of node e after the release. The architecture diagram construction system 100 also displays the edges connected to other nodes in the architecture diagram.

[0181] For example, using the architecture diagram shown in Figures 3E and 3F above as an example, we will describe how the architecture diagram construction system 100 updates the architecture diagram based on user input of dragging / releasing a node. When the architecture diagram construction system 100 detects a user input of dragging node 5.0 in the architecture diagram, in response to this operation, the architecture diagram construction system 100 hides the edges connected to other nodes in the architecture diagram. When the architecture diagram construction system 100 detects a user input of releasing node 5.0 in the architecture diagram, in response to this operation, the architecture diagram construction system 100 displays the previously hidden edges.

[0182] 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 the nodes. The specific implementation ideas can be found in the above S103.

[0183] In conjunction with the architecture diagram construction system 100 shown in FIG1 above, the acquisition module 101, the layout module 102, the visualization module 103 and the interaction module 104 work together to implement the steps performed by the architecture diagram construction system 100 in the method embodiment described in FIG4 above. Specifically, the acquisition module 101 is used to execute the above S101. The layout module 102 is used to execute the above S102, as well as the related steps of adjusting the arrangement order of some or all child nodes associated with node a in the above S105. The visualization module 103 is used to execute the above S103-S104, as well as the related steps of updating the architecture diagram and displaying the updated architecture diagram in the above S105-S105. The interaction module 104 is used to execute the related steps of receiving user input operations in the above S105-S105.

[0184] The embodiment of the present application also provides an architecture diagram display system. As shown in Figure 7, the architecture diagram display system 200 includes a visualization module 201 and an interaction module 202. Optionally, the architecture diagram display system 200 also includes a layout module 203. The visualization module 201 is used to execute the above-mentioned S103-S104, as well as the steps related to updating the architecture diagram and displaying the updated architecture diagram in the above-mentioned S105. The interaction module 202 is used to execute the steps related to receiving user input operations in the above-mentioned S105. The layout module 203 is used to execute the above-mentioned S102, as well as the steps related to adjusting the arrangement order of some or all sub-nodes associated with node a in the above-mentioned S105.

[0185] In the embodiment of the present application, the architecture diagram shows that the system 200 can be a software system, a hardware device, or a combination of a software system and a hardware device.

[0186] When architecture diagram display system 200 is a software system, it can be deployed in a data center in a cloud environment. For example, architecture diagram display system 200 is a cloud service provided by a cloud service provider. In a specific implementation, architecture diagram display system 200 can be independently deployed on a computing instance in a data center in the cloud environment, or distributedly deployed on multiple computing instances in a data center in the cloud environment. Computing instances include servers, virtual machines, and containers.

[0187] The architecture diagram display system 200 can also be deployed on a terminal device. For example, the architecture diagram display system 200 is source code or a component that can be 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 cloud environment data centers. For example, the visualization module 201 and interaction module 202 of the architecture diagram display system 200 are deployed on terminal devices, and the layout module 203 is deployed on a cloud environment data center.

[0189] The present application also provides a computing device. This computing device can be a terminal device or a server in a data center in a cloud environment. As shown in Figure 8, 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 with each other via bus 301.

[0190] Bus 301 may be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, for example. Buses may be classified as address buses, data buses, control buses, and the like. For ease of illustration, FIG8 shows only one bus, but this does not imply that computing device 300 has only one bus or only one type of bus. Bus 301 may include a path for transmitting information between various components of computing device 300 (e.g., processor 302, memory 303, and communication interface 304).

[0191] The 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] The memory 303 may include a volatile memory, such as a random access memory (RAM). The memory 303 may also include a non-volatile memory, such as a read-only memory (ROM), a flash memory, a hard disk drive (HDD), or a solid state drive (SSD).

[0193] Executable program code is stored in the memory 303. The processor 302 executes the executable program code stored in the memory 303 to perform some or all of the steps S101-S105 above. In other words, the memory 303 stores program code for implementing the functions of the architecture diagram construction system 100 (including the acquisition module 101, the layout module 102, the visualization module 103, and the interaction module 104) and / or the architecture diagram display system 200 (including the visualization module 201, the interaction module 202, and the visualization module 203).

[0194] The communication interface 304 uses a transceiver module such as, but not limited to, a network interface card or a transceiver to implement communication between the computing device 300 and other devices or a communication network. For example, the computing device 300 presents an architecture diagram to a user through the communication interface 304 .

[0195] The present application also provides a computing device cluster. The computing device cluster includes multiple computing devices, and the multiple computing devices in the computing device cluster may include one or more of terminal devices and servers in a data center of a cloud environment. As shown in Figure 9, the computing device cluster 400 includes multiple computing devices 300. The multiple computing devices 300 can be connected via a network (e.g., a wide area network or a local area network, etc.).

[0196] The memories 303 of the multiple computing devices 300 in the computing device cluster 400 may store the same program code for executing some or all of the steps S101-S105. Alternatively, the memories 303 of the multiple computing devices 300 in the computing device cluster 400 may each store a portion of the program code for executing some or all of the steps S101-S105, i.e., the combination of the multiple computing devices 300 may jointly execute some or all of the steps S101-S105.

[0197] It should be understood that the embodiment of the present application does not specifically limit which module in the architecture diagram construction system 100 and / or the architecture diagram display system 200 is deployed on which computing device 300. In actual applications, it can be adaptively deployed according to the computing power or specific needs of the computing device 300. Taking the architecture diagram construction system 100 as an example, considering how to present an architecture diagram with better visualization effects to the user (for example, smooth interaction, timely page response, etc.), the embodiment of the present application provides a deployment method shown in Figure 10. As shown in Figure 10, the computing device cluster 400 includes a computing device 300A and a computing device 300B. The computing device 300A and the computing device 300B are connected via a network, and specifically can be connected to the network through the communication interface in each computing device. The memory 303 in the computing device 300A stores instructions for implementing the functions of the acquisition module 101 and the layout module 102, and the memory 303 in the computing device 300B stores instructions for implementing the functions of the visualization module 103 and the interaction module 104.

[0198] Embodiments of the present application also provide a computer program product comprising instructions. This computer program product may be software or a program product comprising instructions that can be executed on a computing device or stored in any available medium. When this computer program product is executed on at least one computing device, it causes the at least one computing device to execute the architectural diagram visualization method described above.

[0199] The present application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium that can be stored by a computing device or a data storage device such as a data center that includes one or more available media, wherein the available media can be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a digital versatile disc (DVD)), a semiconductor medium (e.g., an SSD), etc. The computer-readable storage medium includes instructions, wherein the instructions instruct the computing device to execute the architectural diagram visualization method described above.

[0200] Finally, it should be noted that the above embodiments are intended only to illustrate the technical solutions of this application and are not intended to limit them. Although this application has been described in detail with reference to the above embodiments, those skilled in the art should understand that they may modify the technical solutions described in the above embodiments or replace some of the technical features therein with equivalents; and such modifications or replacements do not deviate from the scope of protection of the technical solutions of the embodiments of this application.

Claims

1. A method for generating an architecture diagram, characterized in that: The method comprises: Get multiple entity information and the relationship between entity information; Generate an architecture diagram according to the plurality of entity information and the relationship between the entity information, wherein the architecture diagram is a multi-layer topological structure consisting of a plurality of nodes and a plurality of edges, each of the plurality of nodes indicates an entity information, and the edge indicates the relationship between the entity information indicated by the nodes at both ends of the edge; The architecture diagram is displayed, in which the nodes of the core layer are arranged according to density, wherein the density of the middle node of the core layer is higher than the density of the nodes on both sides, the density of the node depends on the degree and / or number of cores of the node, and 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 generating an architecture diagram according to the plurality of entity information and the relationship between the entity information includes: Determining the plurality of nodes and the plurality of edges according to the plurality of entity information and the relationship between the entity information; Dividing the plurality of nodes and the plurality of edges to obtain one or more connected domains; Determining the degree and / or number of cores of the nodes of the core layer according to the one or more connected domains; Calculating the compactness of the nodes in the core layer according to the degree and / or the number of cores of the nodes in the core layer; The arrangement positions of the multiple nodes are determined according to the compactness of the nodes of the core layer, and the architecture diagram is generated.

3. The method according to claim 2, characterized in that The plurality of nodes include a first node, and before displaying the architecture diagram, the method further includes: Determine the position of the endpoint of the edge connected to the first node according to the relative position of the first node and the other end node of the edge connected to the first node, and the number of edges connected to the first node, wherein the endpoints of the edge connected to the first node are evenly deployed on one side or multiple sides of the first node; The plurality of nodes further include a second node, and the edge between the first node and the second node is a line segment or a polyline. After determining the arrangement positions of the plurality of nodes, the method further includes: When the edge between the first node and the second node is a broken line, the position of the inflection point of the edge between the first node and the second node is determined according to the relative positions of the first node and the second node.

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: The arrangement order of the nodes of the other layers is adjusted, and after the adjustment, the number of intersections between the edges connected to the nodes of the other layers 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, and the enterprise process architecture diagram is used to represent the relationship between enterprise processes.

6. The method according to any one of claims 1 to 5, characterized in that: The method further comprises: receiving an operation of expanding a third node in the architecture diagram input by a user, wherein the third node indicates first entity information among the plurality of entity information, and the first entity information is associated with one or more entity information of a lower layer; According to 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 of a lower layer than the first entity information, wherein updating 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 the fourth node in the architecture diagram so that the fourth node is not blocked 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 comprises: receiving a user input operation of folding a fifth node in the architecture diagram, the fifth node being associated with one or more child nodes, the fifth node indicating second entity information among the plurality of entity information, the second entity information being associated with one or more lower-level entity information, and the child node associated with the fifth node indicating entity information at a lower level than the second entity information; According to the operation of folding the fifth node, the architecture diagram is updated and the updated architecture diagram is displayed, wherein the updated architecture diagram hides one or more child nodes associated with the fifth node, wherein updating 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 comprises: receiving a user input of an operation of dragging the seventh node in the architecture diagram; According to the operation of dragging the seventh node, hiding the edges connected to other nodes in the architecture diagram; receiving an operation of releasing the seventh node input by the user; According to 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 by different graphic elements; or, The edges between nodes of different layers in the architecture diagram are represented by 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 start point and the end point of any one of the multiple edges in the architecture diagram are represented by different primitives; or, The architecture diagram displays the identifiers of the multiple nodes, and 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 comprises: Presenting an architecture diagram to a user, wherein the architecture diagram is a multi-layer topological structure consisting of a plurality of nodes and a plurality of edges, each of the plurality of nodes indicates an entity information, and the edge indicates a relationship between the entity information indicated by the nodes at both ends of the edge; receiving an operation of expanding a first node in the architecture diagram input by the user, wherein the first node indicates first entity information, and the first entity information is associated with one or more entity information of lower layers; According to the operation of expanding the first node, determining the arrangement position of one or more child nodes associated with the first node, adjusting the position of the second node in the architecture diagram, wherein the child nodes associated with the first node indicate entity information in a layer below the first entity information; One or more child nodes associated with the first node are displayed, wherein the second node after the position adjustment is not blocked by the child nodes associated with the first node.

11. The method according to claim 10, characterized in that The method further comprises: receiving an operation of folding a third node in the architecture diagram input by the user, the third node being associated with one or more child nodes, the third node indicating second entity information, the second entity information being associated with one or more lower-level entity information, and the child node associated with the third node indicating entity information at a lower level than the second entity information; According to the operation of folding the third node, determining the position of the third node after hiding one or more child nodes associated with the third node, and adjusting the position of the fourth node in the architecture diagram; One or more child nodes associated with the third node are hidden.

12. The method according to claim 10 or 11, characterized in that: The method further comprises: receiving an operation of dragging the fifth node in the architecture diagram input by the user; According to the operation of dragging the fifth node, hiding the edges connected to other nodes in the architecture diagram; receiving an operation of releasing the fifth node input by the user; According to the operation of releasing the fifth node, 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, and the enterprise process architecture diagram is used to represent the relationship 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: Dividing the plurality of nodes and the plurality of edges to obtain one or more connected domains; Determining the degree and / or number of cores of the nodes of the core layer according to the one or more connected domains; Calculating the compactness of the nodes in the core layer according to the degree and / or the number of cores of the nodes in the core layer; The arrangement positions of the multiple nodes are determined according to the compactness of the nodes of the core layer, and the architecture diagram is generated.

15. A system for constructing an architecture diagram, characterized in that: The system comprises: An acquisition module, used to acquire multiple entity information and the relationship between the entity information; A layout module, configured to generate an architecture diagram according to the plurality of entity information and the relationship between the entity information, wherein the architecture diagram is a multi-layer topological structure consisting of a plurality of nodes and a plurality of edges, each of the plurality of nodes indicates an entity information, and the edge indicates the relationship between the entity information indicated by the nodes at both ends of the edge; A visualization module is used to display the architecture diagram, in which the nodes of the core layer in the architecture diagram are arranged according to density, wherein the density of the middle node of the core layer is higher than the density of the nodes on both sides, and the density of the 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.

16. The system according to claim 15, characterized in that The layout module is used to determine the multiple nodes and the multiple edges according to the multiple entity information and the relationship between the entity information; divide the edges between the nodes of the core layer and the nodes of the other layers in the multiple nodes and the multiple edges to obtain one or more connected domains; determine the degree and / or the number of cores of the nodes of the core layer according to the one or more connected domains; calculate the density of the nodes of the core layer according to the degree and / or the number of cores of the nodes of the core layer; determine the arrangement positions of the multiple nodes according to the density of the nodes of the core layer, and generate the architecture diagram.

17. The system according to claim 16, characterized in that The plurality of nodes includes a first node, The visualization module is further used to determine the position of the endpoint of the edge connected to the first node according to the relative position of the first node and the other end node of the edge connected to it, and the number of edges connected to the first node, wherein the endpoints of the edge connected to the first node are evenly deployed on one side or multiple sides of the first node; The 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 further configured to determine, when the edge between the first node and the second node is a broken line, a position of an inflection point of the edge between the first node and the second node according to a relative position of the first node and the second node.

18. The system according to claim 16 or 17, characterized in that The layout module is further used to adjust the arrangement order of the nodes of the other layers, so that after the adjustment, the number of intersections between the edges connected to the nodes of the other layers is less than the number before the 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, and the enterprise process architecture diagram is used to represent the relationship 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 configured to receive an operation of expanding a third node in the architecture diagram input by a user, wherein the third node indicates first entity information among the plurality of entity information, and the first entity information is associated with one or more entity information of a lower layer; The visualization module is further used to update the architecture diagram according to the operation of expanding the third node, and display the updated architecture diagram, wherein 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 of a lower layer of the first entity information, wherein 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 blocked 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 configured to receive an operation of folding a fifth node in the architecture diagram input by a user, the fifth node being associated with one or more child nodes, the fifth node indicating second entity information among the plurality of entity information, the second entity information being associated with one or more lower-level entity information, and the child node associated with the fifth node indicating entity information at a lower level than the second entity information; The visualization module is further configured to update the architecture diagram according to 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 determining The arrangement position of the fifth node after hiding the 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 an operation of dragging the seventh node in the architecture diagram input by the user; and receive an operation of releasing the seventh node input by the user; The visualization module is further used to hide the edges connected to other nodes in the architecture diagram according to the operation of dragging the seventh node; and to display the edges connected to other nodes according to 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 by different graphic elements; or, The edges between nodes of different layers in the architecture diagram are represented by 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 start point and the end point of any one of the multiple edges in the architecture diagram are represented by different primitives; or, The architecture diagram displays the identifiers of the multiple nodes, and 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 comprises: A visualization module, used to present an architecture diagram to a user, wherein the architecture diagram is a multi-layer topological structure consisting of a plurality of nodes and a plurality of edges, wherein each of the plurality of nodes indicates an entity information, and the edge indicates a relationship between the entity information indicated by the nodes at both ends of the edge; An interaction module, configured to receive an operation of expanding a first node in the architecture diagram input by the user, wherein the first node indicates first entity information, and the first entity information is associated with one or more entity information of lower layers; The visualization module is also used to determine the arrangement position of one or more child nodes associated with the first node according to the operation of expanding the first node, adjust the position of the second node in the architecture diagram, and the child nodes associated with the first node indicate the entity information of the lower layer of the first entity information; display the one or more child nodes associated with the first node, wherein the second node after the position adjustment is not blocked by the child nodes associated with the first node.

25. The system according to claim 24, characterized in that The interaction module is further configured to receive an operation of folding a third node in the architecture diagram input by the user, 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 node associated with the third node indicates entity information at a lower level than the second entity information; The visualization module is also used to determine the position of the third node after hiding one or more child nodes associated with the third node according to 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 further configured to receive an operation of dragging the fifth node in the architecture diagram input by the user; and receive an operation of releasing the fifth node input by the user. The visualization module is further used to hide the edges connected to other nodes in the architecture diagram according to the operation of dragging the fifth node; and to display the edges connected to other nodes according to 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, and the enterprise process architecture diagram is used to represent the relationship between enterprise processes.

28. The system according to any one of claims 24 to 27, characterized in that The system further comprises: A layout module is used to divide the multiple nodes and the multiple edges to obtain one or more connected domains; determine the degree and / or number of cores of the nodes of the core layer according to the one or more connected domains; calculate the density of the nodes of the core layer according to the degree and / or number of cores of the nodes of the core layer; determine the arrangement positions of the multiple nodes according to the density of the nodes of the core layer, and generate the architecture diagram.

29. A computing device, characterized in that, The method comprises a processor and a memory, wherein the processor executes instructions stored in the memory to implement the method according to any one of claims 1 to 14.

30. A computer-readable storage medium, characterized in that: The method comprises computer program instructions, which, when executed by a computing device, cause the computing device to perform the method according to any one of claims 1 to 14.

Citation Information

Patent Citations

  • A layout and presentation method based on multi-layer complex network topology

    CN109167686A

  • Sub-network topology presentation method, device and equipment

    CN113452557A

  • Weak connection directed acyclic scale-free network generation method

    CN113660116A

  • Topology display method and related equipment

    CN115567399A