BlueZero (BØ)
Middleware for distributed applications
Graph protocol

The graph protocol is a subset of the protocol, consisting of a series of messages used to allow introspection of node, topics, and services connections.

The messages sent by sockets to inform resolver about these connections are b0::resolver_msgs::NodeTopicRequest and b0::resolver_msgs::NodeServiceRequest (see Protocol).

Additionally, the b0::resolver_msgs::GetGraphRequest message can be used to retrieve the graph:

msc_graph-get

The program b0_graph_console (and also gui/b0_graph_console_gui) included in BlueZero is an example of displaying such graph, while whatching for changes to it in realtime.

Here is a rendering of the graph (b0::resolver_msgs::Graph) during a BlueZero session with several nodes running:

dot_graph-example.png

Black rectangles are nodes, red diamonds are services, and blue ovals are topics.

An arrow from node to topic means a node is publishing to a topic. Vice-versa, an arrow from topic to node means a node is subscribing to a topic.

An arrow from node to service means a node is offering a service. Vice-versa, an arrow from service to node means a node is using a service.

Nodes have an implicit connection to the 'resolv' service, however it is not shown in the graph.