Search

US-20260126993-A1 - SYSTEMS AND METHODS FOR RENDERING GRAPHS OF APPLICATIONS USING CONFIGURATION FILES

US20260126993A1US 20260126993 A1US20260126993 A1US 20260126993A1US-20260126993-A1

Abstract

A system for automatically tracking elements associated with a software application and for generating customizable graphs that capture the dependencies and message flows among the elements is provided. For a software application deployed in a cloud environment, configuration files used to deploy the elements of the software application are processed to extract information such as the name of each element and the names of messages used or produced by each element. This extracted data is combined with implicit data about the cloud environment such as data about elements used in the environment but that are not deployed using configuration files. Graph data is generated from the combined data that includes an object for each element and edges that represent message flows or dependencies between the elements. The graph data is used to render and display a graph of the software application.

Inventors

  • Geoff Murray

Assignees

  • CHANGE HEALTHCARE HOLDINGS, LLC

Dates

Publication Date
20260507
Application Date
20260105

Claims (20)

  1. 1 . A method comprising: receiving, by one or more processors, a selection of a first software application, wherein the first software application comprises a first plurality of elements, wherein each element of the first plurality of elements is (i) represented by a respective one of a first plurality of nodes of graph data and (ii) reflected in a configuration file; for each element of the first plurality of elements, extracting, by the one or more processors, element data from the configuration file associated with the element; receiving, by the one or more processors, implicit data indicative of a second plurality of elements, wherein each element of the second plurality of elements is (i) represented by a respective one of a second plurality of nodes of the graph data and (ii) not reflected in the configuration file; generating, by the one or more processors and from the extracted element data and the implicit data, the graph data for the first software application, wherein the graph data includes (i) the first plurality of nodes and the second plurality of nodes and (ii) edges that represent a plurality of messages exchanged among the first plurality of elements and the second plurality of elements; receiving, by the one or more processors, graph data for a second software application; and using the graph data for the first software application and the graph data for the second software application, rendering, by the one or more processors, a graph of the first software application and the second software application on a display, wherein the graph identifies differences between the first software application and the second software application.
  2. 2 . The method of claim 1 , further comprising: displaying, by the one or more processors, each element of the first plurality of elements, each element of the second plurality of elements, and each message of the plurality of messages on the display.
  3. 3 . The method of claim 1 , wherein the configuration file is a Yet Another Markup Language file.
  4. 4 . The method of claim 1 , wherein the element data extracted from the configuration file associated with the element comprises one or more of: identifiers of messages of the plurality of messages that the element accepts; identifiers of messages of the plurality of messages that the element sends to other elements; or identifiers of one or more message queues that the element uses.
  5. 5 . The method of claim 1 , wherein the implicit data are about a cloud computing environment associated with the first software application.
  6. 6 . The method of claim 1 , wherein the first software application is deployed in a cloud-based computing system.
  7. 7 . The method of claim 1 , wherein the graph is a first graph, the method further comprising: receiving, by the one or more processors, a selection of two or more elements of the displayed first and second plurality of elements and at least one message of the displayed plurality of messages; and in response to the selection of the two or more elements, and using the graph data, rendering, by the one or more processors, a second graph of the first software application on the display, wherein the second graph illustrates a flow between the selected two or more elements for the selected at least one message of the plurality of messages.
  8. 8 . The method of claim 1 , wherein the second software application is a branch of the first software application.
  9. 9 . The method of claim 1 , wherein the elements of the plurality of elements comprise services.
  10. 10 . The method of claim 1 , wherein the differences between the first software application and the second software application include a flow that is between a same pair of elements, but is associated with a different message, in the first software application and the second software application.
  11. 11 . A system comprising: one or more processors; and at least one memory storing processor-executable instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising: receiving a selection of a first software application, wherein the first software application comprises a first plurality of elements, wherein each element of the first plurality of elements is (i) represented by a respective one of a first plurality of nodes of graph data and (ii) reflected in a configuration file; for each element of the first plurality of elements, extracting element data from the configuration file associated with the element; receiving implicit data indicative of a second plurality of elements, wherein each element of the second plurality of elements is (i) represented by a respective one of a second plurality of nodes of the graph data and (ii) not reflected in the configuration file; generating, from the extracted element data and the implicit data, the graph data for the first software application, wherein the graph data includes (i) the first plurality of nodes and the second plurality of nodes and (ii) edges that represent a plurality of messages exchanged among the first plurality of elements and the second plurality of elements; receiving graph data for a second software application; and using the graph data for the first software application and the graph data for the second software application, rendering, by the one or more processors, a graph of the first software application and the second software application on a display, wherein the graph identifies differences between the first software application and the second software application.
  12. 12 . The system of claim 11 , where the operations further comprise: displaying, by the one or more processors, each element of the first plurality of elements, each element of the second plurality of elements, and each message of the plurality of messages on the display.
  13. 13 . The system of claim 11 , wherein the configuration file is a Yet Another Markup Language file.
  14. 14 . The system of claim 11 , wherein the element data extracted from the configuration file associated with the element comprises one or more of: identifiers of messages of the plurality of messages that the element accepts; identifiers of messages of the plurality of messages that the element sends to other elements; or identifiers of one or more message queues that the element uses.
  15. 15 . The system of claim 11 , wherein the implicit data are about a cloud computing environment associated with the first software application.
  16. 16 . The system of claim 11 , wherein the first software application is deployed in a cloud-based computing system.
  17. 17 . The system of claim 11 , wherein the graph is a first graph, the operations further comprise: receiving, by the one or more processors, a selection of two or more elements of the displayed first and second plurality of elements and at least one message of the displayed plurality of messages; and in response to the selection of the two or more elements, and using the graph data, rendering, by the one or more processors, a second graph of the first software application on the display, wherein the second graph illustrates a flow between the selected two or more elements for the selected at least one message of the plurality of messages.
  18. 18 . One or more non-transitory computer-readable media storing processor-executable instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising: receiving a selection of a first software application, wherein the first software application comprises a first plurality of elements, wherein each element of the first plurality of elements is (i) represented by a respective one of a first plurality of nodes of graph data and (ii) reflected in a configuration file; for each element of the first plurality of elements, extracting element data from the configuration file associated with the element; receiving implicit data indicative of a second plurality of elements, wherein each element of the second plurality of elements is (i) represented by a respective one of a second plurality of nodes of the graph data and (ii) not reflected in the configuration file; generating, from the extracted element data and the implicit data, the graph data for the first software application, wherein the graph data includes (i) the first plurality of nodes and the second plurality of nodes and (ii) edges that represent a plurality of messages exchanged among the first plurality of elements and the second plurality of elements; receiving graph data for a second software application; and using the graph data for the first software application and the graph data for the second software application, rendering, by the one or more processors, a graph of the first software application and the second software application on a display, wherein the graph identifies differences between the first software application and the second software application.
  19. 19 . The one or more non-transitory computer-readable media of claim 18 , wherein the operations further comprise: displaying each element of the first plurality of elements, each element of the second plurality of elements, and each message of the plurality of messages on the display.
  20. 20 . The one or more non-transitory computer-readable media of claim 18 , wherein the configuration file is a Yet Another Markup Language file.

Description

CROSS-REFERENCE TO RELATED APPLICATIONS This application is a continuation of U.S. patent application Ser. No. 17/555,892, entitled “SYSTEMS AND METHODS FOR RENDERING GRAPHS OF APPLICATIONS USING CONFIGURATION FILES,” filed on Dec. 20, 2021, the content of which is hereby incorporated herein by reference in its entirety. BACKGROUND As cloud based systems development matures, and the cloud solutions involve more and more components and elements, many organizations move towards automating the deployment and upgrades of those systems. This is especially critical as the number of microservices grows, and the deployment through manual processes becomes unmanageable and extremely error prone. Critical to the automation of deployment is the use of defined configuration information that controls how services are deployed within the cloud system. These deployment configuration information files can vary across systems and are stored in a variety of formats. As the number of system components grow, the messaging and communication between the different components grows as well. The number of communication connections between elements usually grows at a faster than linear scale. This communication complexity then becomes very difficult to learn, track, and monitor. Typically, organizations produce diagrams showing communication flows between elements. As cloud solutions become larger, they are also typically managed by a growing number of development teams, and these sorts of diagrams become an additional source of documentation that must be maintained, along with the deployment configuration files. When there are two sources of information considered to be the truth, there can be discrepancies created, and these discrepancies can easily cause a critical misunderstanding of how the system works. It is necessary to minimize these misunderstandings as part of a safe, secure, and reliable cloud-based system. SUMMARY In an embodiment, a system for automatically tracking elements associated with a software application and for generating customizable graphs that capture the dependencies and message flows among the elements is provided. For a software application deployed in a cloud computing environment, configuration files used to deploy the elements of the software application are processed to extract information such as the name of each element and the names of messages used or produced by each element. This extracted data is combined with implicit data about the cloud computing environment such as data about elements used in the environment but that are not deployed using configuration files. Graph data is generated from the combined data that includes an object for each element and edges that represent message flows or dependencies between the elements. The graph data is used to render and display a graph of the software application. The user can modify the displayed graph to focus on selected elements or messages. In an embodiment, a method is provided. The method includes: receiving a selection of a first software application by a computing device, wherein the first software application comprises a plurality of elements and each element is associated with a configuration file; for each element of the plurality of elements, extracting element data from the configuration file associated with the element by the computing device, wherein the element data identifies a message of a plurality of messages; generating, from the extracted element data, graph data for the first software application by the computing device; and using the graph data, rendering a first graph of the first software application by the computing device, wherein the graph illustrates a flow between two or more elements of the plurality of elements for at least one message of the plurality of messages. Embodiments may include some or all of the following features. The method may further include receiving a selection of the two or more elements and the at least one message. The configuration file may be a YAML file. The element data extracted from the configuration file associated with the element comprises one or more of: identifiers of messages of the plurality of messages that the element accepts; identifiers of messages of the plurality of messages that the element sends to other elements; or identifiers of one or more message queues that the element uses. The method may further include: receiving implicit data about a cloud computing environment associated with the first software application; and generating, from the extracted element data and the implicit data, the graph data for the first software application. The first software application may be deployed in a cloud-based computing system. The method may further include: receiving graph data for a second software application; and using the graph data for the first software application and the graph data for the second software application, rendering a second graph of the first software application