Indirect dependencies

Post Reply
Kevin Campbell
Posts: 40
Joined: 13 Sep 2010, 20:26

In modeling an application software instance I have included a dependency on an information store instance, which is itself deployed to a technology node and dependent upon infrastructure software instances.

When looking at either the technology node itself, or the infrastrucure software instances deployed to it, there is no indication within reporting that an application deployment is indirectly dependent upon them. Is this a situation you've encountered previously, and if so how have you approached it?

Kevin
User avatar
jonathan.carter
Posts: 1087
Joined: 04 Feb 2009, 15:44

Hi Kevin,

Apologies for taking so long to get back to you.

I've had a look into a scenario like the one you describe. I've used one of our sample repositories and have looked at the 'Advantage' Application as it has a deployment defined.

This deployment has 2 instances (live and standby) that are deployed on a pair of nodes. Also the dependency between the application instance and the information store instance is defined. On each Technology Instance we must explicitly define the physical dependencies that exist between instances of technology to accurate reflect the physical deployment configuration. e.g., we must specify which instance of Oracle running where, that the Live, Production instance of our Application depends on. This enables us to capture complex distributed systems architectures.

When I go to Viewer, I can see all these dependencies in the views for the Technology Instances and Technology Node summaries.

Just to be clear, what you are describing, though, is showing a dependency that because, e.g. Application A depends on Information Store B, which in turn depends on Node C, then Application A has an indirect dependency on Node C?

You are correct in that the OOTB views do not 'chase' these dependencies to show the 'dependency chains'. Rather the standard views show the direct dependencies and you can follow the chain of dependencies through following the hyperlinks.

In answer to how to approach exposing the indirect dependencies, I would create a new view that did just that - and probably scoped to focus on what it is that you need to understand. e.g. 'All Physical Servers Supporting Application' which shows just that - the set of Nodes that directly and indirectly support the specified Application Provider.
All the information required is in the repository and it's a case then of traversing the relationships as follows:

Application Provider -> all Application Deployments -> all Application Software Instances->all supporting Nodes + all supporting Technology Instances -> all supporting Nodes + all supporting Technology Instances of the supporting Technology Instances -> all supporting Nodes

... and so on. You'd need to take care to avoid any circular dependencies - or at least to prune that branch of the search tree!

The approach is, in summary, to build the view that shows the indirect dependencies but I would keep those focussed around indirect dependencies on specific things, e.g. server Nodes, database server instances as combining them or trying to provide a complete view is likely to be complex to build and complex to read in the view. (although, sometimes there's value in highlighting the inherent complexity!)

By the way, we do have some views that demonstrate indirect dependencies, e.g. Business Capabilities to Application Providers (traversing the implementing Processes and the Applications that support each process) - just not for the Technology Instances, yet.

Hope this helps

Jonathan
Essential Project Team
Post Reply