Anaximander, a Notes 8 plug-in for visualising the connections between Notes Databases
Category Pre-Socratic Greek philosophers Spaghetti
Bookmark :
One of the perennial problems faced by all Notes developers is understanding the connections between different Notes Databases.
Anaximander is a plug-in I'm writing for a client which visualises the connections between Notes Databases. Here's the very first output from the very first version. Shown in the picture are the connections between about 550 Notes Databases. I thought it would be complex but not this complex!
Clicking on a target database highlights which source databases have one or more connections to the target database.
The next step is to improve the visualisation so that information about the connected design elements is shown in a tree view. The Java model driving the graph already has the information so it just needs a TableTree to display it.
I'd also like to filter the display to make the graph simpler. Perhaps by only displaying n generations of children from the target database so in the picture above one would only see the yellow nodes.
Oh, if you're wondering, Anaximander was pre-Socratic Greek philosopher who created one of the first maps of the world. Cool name, cool dude!
Bookmark :
One of the perennial problems faced by all Notes developers is understanding the connections between different Notes Databases.
Anaximander is a plug-in I'm writing for a client which visualises the connections between Notes Databases. Here's the very first output from the very first version. Shown in the picture are the connections between about 550 Notes Databases. I thought it would be complex but not this complex!
Clicking on a target database highlights which source databases have one or more connections to the target database.
The next step is to improve the visualisation so that information about the connected design elements is shown in a tree view. The Java model driving the graph already has the information so it just needs a TableTree to display it.
I'd also like to filter the display to make the graph simpler. Perhaps by only displaying n generations of children from the target database so in the picture above one would only see the yellow nodes.
Oh, if you're wondering, Anaximander was pre-Socratic Greek philosopher who created one of the first maps of the world. Cool name, cool dude!
Comments
Posted by Charles Robinson At 04:37:08 On 14/06/2008 | - Website - |
What\ how are you determining what is a "connection" between databases?
Posted by Nick Wall At 18:37:16 On 19/06/2008 | - Website - |
1. I export the design (and profile documents etc) of all the databases as dxl and store them in a full-text indexed Notes Database. This database on its own is very useful for finding agents when you know the name but have forgotten which database it's in etc
In my clients environment this is about 130,000 design elements. The first time I extract all the dxl it takes about 5 hours but subsequent runs take minutes because it only looks at design elements which have changed.
2. I run an agent against all the dxl which does a set of regular expression searches through all 130,000 design elements looking for matches which indicate a connection from one database to another. This is the 'tricky' bit and the bit that probably need more refinement. The output of the agent is a bunch of Notes DatabaseConnection documents, each one of which indicates a source/target db/design element etc
Luckily the clients environment has a few policies in place which make the analysis somewhat simpler than a general case analysis would be.
3. The Anaxi plug-in visualises the view of DatabaseConnection documents.
The beauty of doing it this way is that the visualisation is independent of the analysis. So, for example, one could manually create documents in step two or generate them via some other mechanism. So long as the correct type of Notes Document are created then Anaxi will be able to visualise them. It's also useful to be able to manually create DatabaseConnection documents for cases where one knows that it's impossible to programatically determine a connection. For example, if you had some obscure Lotusscript which constructs a database path by combining Country and day of the week i.e. gb/wed/orders.nsf, gb/thu/orders.nsf, us/wed/orders.nsf etc then one could manually create the necessary DatabaseConnection documents and Anaxi would still visualise them.
Since I wrote the last post I've added a bunch of filters to the graph so it's possible to see *only* the databases connected to the source database. In addition one can filter in/out source/target connections and 'freeze' the graph. These filters make it much easier to use the graph without getting to overwhelmed.
Hope that helps. Let me know if you have any more questions.
Posted by frunobulax At 18:25:31 On 23/06/2008 | - Website - |
Can you post the link to code?
Posted by Prateek At 17:43:35 On 03/07/2008 | - Website - |
Posted by Ondrej Vojta At 10:10:20 On 01/08/2008 | - Website - |
Posted by Josef Bouska At 16:46:14 On 14/11/2008 | - Website - |