Dynamic graph-based structure for representing a communications network
Embodiments are disclosed for providing network management and application services for a telecommunications network. In an embodiment, data associated with a network entity in the telecommunication network may be received from a provider-specific data source, and the received data may include one or more data attribute values. The telecommunications network may be represented by a network graph containing vertices and edges, and each vertex may correspond to a respective network entity having a respective entity type. The plurality of edges in the network graph connected to the first vertex may be updated based on a linking rule that specifies a relationship between network entities having respective entity types, and a walk associated with the first vertex may be identified. The identified walk may then be dynamically executed from an intermediate starting vertex to generate one or more output entities.
1. A computer-implemented method, comprising:
receiving, from a provider-specific data source, data associated with a network entity in a telecommunications network, the received data having one or more data attribute values, wherein the telecommunications network is represented by a network graph having a plurality of vertices and a plurality of edges, each vertex associated with a corresponding network entity having a respective entity type;
associating the received data with a first vertex in the network graph;
retrieving a linking rule from a provider-specific customization document, the linking rule specifying a relationship between a data attribute of a first entity type and a data attribute of a second entity type;
updating, based on the linking rule, the plurality of edges in the network graph connected to the first vertex;
identifying a walk associated with the first vertex, the walk having a walk definition that specifies an entity type of a starting vertex within the network graph; and
dynamically executing, the walk from an intermediate starting vertex to generate one or more output entities.
2. The method of claim 1 , wherein updating the plurality of edges farther comprises:
removing a first edge connected to the first vertex from the plurality of edges based on the linking rule; and
adding a second edge connected to the first vertex to the plurality of edges based on the linking rule.
3. The method of claim 2 , wherein identifying a walk associated with the first vertex further comprises:
determining whether the first vertex is part of a previously executed walk; and
determining whether the removed first edge or the added second edge is part of the previously executed walk.
4. The method of claim 1 , wherein dynamically executing the walk further comprises:
setting the intermediate starting vertex to the first vertex;
loading a previous intermediate state of the walk at the intermediate starting vertex; and
executing, using the previous intermediate state, the walk from the intermediate starting vertex to generate one or more output entities.
5. The method of claim 4 , wherein executing the walk using the previous intermediate state further comprises:
retrieving, from a walk customization document, a list of edge types to traverse from the intermediate starting vertex;
identifying edges connected to the intermediate starting vertex and having an edge type in the list of edge types;
transmitting a message from the intermediate starting vertex across the identified edges, wherein the message is received by destination vertices connected to the identified edges; and
repeating the retrieving, the identifying edges, and the transmitting for each of the destination vertices.
6. The method of claim 1 , further comprising:
correlating each of the generated one or more output entities to a service information model that defines a plurality of base network entities used to represent an architecture of the telecommunications network.
7. The method of claim 1 , further comprising:
generating a visualization of communications paths within the telecommunications network using the generated one or more output entities.
8. The method of claim 1 , further comprising:
storing the plurality of vertices and the plurality of edges of the network graph in-memory across one or more distributed computing devices.
9. A system, comprising:
at least one memory; and
at least one processor coupled to the at least one memory and configured to:
receive, from a provider-specific data source, data associated with a network entity in a telecommunications network, the received data having one or more data attribute values, wherein the telecommunications network is represented by a network graph having a plurality of vertices and a plurality of edges, each vertex associated with a corresponding network entity having a respective entity type;
associate the received data with a first vertex in the network graph;
retrieve a linking rule from a provider-specific customization document, the linking rule specifying a relationship between a data attribute of a first entity type and a data attribute of a second entity type;
update, based on the linking rule, the plurality of edges in the network graph connected to the first vertex;
identify a walk associated with the first vertex, the walk having a walk definition that specifies an entity type of a starting vertex within the network graph; and
dynamically execute the walk from an intermediate starting vertex to generate one or more output entities.
10. The system of claim 9 , wherein to update the plurality of edges, the at least one processor is further configured to:
remove a first edge connected to the first vertex from the plurality of edges based on the linking rule; and
add a second edge connected to the first vertex to the plurality of edges based on the linking rule.
11. The system of claim 10 , wherein to identify a walk associated with the first vertex, the at least one processor is further configured to:
determine whether the first vertex is part of a previously executed walk; and
determine whether the removed first edge or the added second edge is part of the previously executed walk.
12. The system of claim 9 , wherein to dynamically execute the walk, the at least one processor is farther configured to:
set the intermediate starting vertex to the first vertex;
load a previous intermediate state of the walk at the intermediate starting vertex; and
execute, using the previous intermediate state, the walk from the intermediate starting vertex to generate one or more output entities.
13. The system of claim 12 , wherein to execute the walk using the previous intermediate state, the at least one processor is further configured to:
retrieve, from a walk customization document, a list of edge types to traverse from the intermediate starting vertex;
identify edges connected to the intermediate starting vertex and having an edge type in the list of edge types;
transmit a message from the intermediate starting vertex across the identified edges, wherein the message is received by destination vertices connected to the identified edges; and
repeat the retrieve, the identify edges, and the transmit for each of the destination vertices.
14. The system of claim 9 , wherein the at least one processor is further configured to:
correlate each of the generated one or more output entities to a service information model that defines a plurality of base network entities used to represent an architecture of the telecommunications network.
15. The system of claim 9 , wherein the at least one processor is further configured to:
generate a visualization of communications paths within the telecommunications network using the generated one or more output entities.
16. The system of claim 9 , wherein the at least one processor is further configured to:
store the plurality of vertices and the plurality of edges of the network graph in-memory across one or more distributed computing devices.
17. A non-transitory computer-readable storage device having instructions stored thereon that, when executed by at least one computing device, cause the at least one computing device to perform operations comprising:
receiving, from a provider-specific data source, data associated with a network entity in a telecommunications network, the received data having one or more data attribute values, wherein the telecommunications network is represented by a network graph having a plurality of vertices and a plurality of edges, each vertex associated with a corresponding network entity having a respective entity type;
associating the received data with a first vertex in the network graph;
retrieving, a linking rule from a provider-specific customization document, the linking rule specifying a relationship between a data attribute of a first entity type and a data attribute of a second entity type;
updating, based on the linking rule, the plurality of edges in the network graph connected to the first vertex;
identifying a walk associated with the first vertex, the walk having a walk definition that specifies an entity type of a starting vertex within the network graph; and
dynamically executing the walk from an intermediate starting vertex to generate one or more output entities.
18. The non-transitory computer-readable storage device of claim 17 , wherein to update the plurality of edges the operations further comprise:
removing a first edge connected to the first vertex from the plurality of edges based on the linking rule; and
adding a second edge connected to the first vertex to the plurality of edges based on the linking rule.
19. The non-transitory computer-readable storage device of claim 18 , wherein to identify a walk associated with the first vertex the operations further comprise:
determining whether the first vertex is part of a previously executed walk; and
determining whether the removed first edge or the added second edge is part of the previously executed walk.
20. The non-transitory computer-readable storage device of claim 17 , wherein to dynamically execute the walk the operations, further comprise:
setting the intermediate starting vertex to the first vertex;
loading a previous intermediate state of the walk at the intermediate starting vertex;
executing, using the previous intermediate state, the walk from the intermediate starting vertex to generate the one or more output entities.
21. The non-transitory computer-readable storage device of claim 20 , wherein to execute the walk using the previous intermediate state the operations further comprise:
retrieving, from a walk customization document, a list of edge types to traverse from the intermediate starting vertex;
identifying edges connected to the intermediate starting vertex and having an edge type in the list of edge types;
transmitting a message from the intermediate starting vertex across the identified edges, wherein the message is received by destination vertices connected to the identified edges; and
repeating the retrieving, the identifying edges, and the transmitting for each of the destination vertices.
22. The non-transitory computer-readable storage device of claim 17 , the operations further comprising:
correlating each of the generated one or more output entities to a service information model that defines a plurality of base network entities used to represent an architecture of the telecommunications network.
23. The non-transitory computer-readable storage device of claim 17 , the operations farther comprising:
generating a visualization of communications paths within the telecommunications network using the generated one or more output entities.
24. The non-transitory computer-readable storage device of claim 17 , the operations further comprising:
storing the plurality of vertices and the plurality of edges of the network graph in-memory across one or more distributed computing devices.