Hi, in daily operations my CMDB consists of notes and a bunch of diagrams. DataGerry has a very nice model, which I think would suit perfectly as a base for system diagrams. I have an editor in mind, in which you can load a subtree of your object graph and visualize it by applying the following workflow:
- Start from a root object.
- From the root object (node), show options to add references (objects referenced by the root object) and backreferences (objects that reference the root object). Pick options to add the (back)referenced object as many times as needed, on any previously added object.
- For each object: Pick an icon/picture, title and enable/disable details fields. Objects are by default collapsed to an icon + title and can expand to a picture + title + details.
- Name reference edges.
- Show/hide intermediate objects which are irrelevant to the diagram.
- Drag the objects (nodes) around and rearrange reference edges.
- Save the diagram: can be a JSON file containing the geometry and references to the objects.
This would make it possible to visualize network topologies, show what assets are combined in a configuration, etc.
A future step may be:
a. Add labels anywhere and bind their content to an object field’s value. A bidirectional binding would be nice.
b. Add shapes anywhere and bind their visual properties (fill and border) to an object field’s value.
c. Add pictures anywhere
With this you can add pictures of server racks, floor plans, maps … and stack labels/shapes on top to show relevant info.
Another set of features:
a. Hyperlink a shape, node, label, … to another diagram or object (perhaps depending on certain object field values)
b. Add a new object to the diagram by navigating to the object creation form and afterwards returning to the diagram with the new object. This could be initiated via (back)reference edges and would result in the new object being attached to the edge.
c. Make the whole subtree more declarative: find a configurator or language that easily describes what references/backreferences for what objects there should be displayed (with a maximum depth and reuse of previously added objects). This will also require a warning message when the query results in too many objects, before they are added to the DOM tree (and a configurable limit).
These options really integrate the diagrams with the whole application.
A step further:
a. Add gauges, progress bars and other indicators which reflect certain object field values.
b. Add time graphs showing the history of certain object field values.
So, ultimately you could also work this out until you have a detailed dashboard designer.
If you like the idea I’ll make some wireframes to work out the concept.