Logically a website is a child of a webserver application. Regardless of whether I choose to implement the website CI as an SI or BAI, the parent/child relationships should be configurable, hence the possibility of either of the two lines below:model.addContainment(si_new, si);
model.addContainment(si, si_new);Which again begs the question, is there a way to explicitly assign a host to an SI?
Apologies, an edit went missing on my post that should have answered that question.
I’m afraid that that isn’t the way the Foundation Model and the TPL code that assists in making the maintenance of it simple works. That model expects you to build SoftwareInstances to represent the fundamental functional blocks of software that supports your business services. It then expects you to aggregate the components of the service upwards into second order SIs and BAIs. Essentially it models business service hierarchy rather than internal software structure. I’ve attached a slide from one of my presentations that shows this, though it is a simplified case.
In the evolution of the core model in the 7.1.x product you are using website and other application substructure is not ignored. It is regarded as interesting properties of those services so that you can model further services based on the evidence that that particular IIS server is running the website that supports it.
In the forthcoming 7.2.x series of releases we have added a nodekind to the core model explicitly for flexible modelling of the substructure of application servers to support exactly the uses you are considering where we need to delve deeper into application servers, database, webservers etc, but sadly that is not yet ready.
These issues do not arise if you add additional nodekinds to the taxonomy, it only arises as the SoftwareInstance nodekind has a specific expected structure which a large number of helper functions construct and expect. This was a pragmatic decision as it is the major way people extend our model to capture their bespoke software and business services and we did not want them to have to learn the intricacies of our technology in order to achieve this.
I cannot recommend you a way of forcing a relationship to be built to the Host other than using addContainment. The removal rules and other maintenance functions in the system expect the model to be built in this hierarchical fashion and disrupting this would cause side effects.
It is certainly possible to achieve what you want but it will take more advanced customisation to add dedicated entities to the taxonomy and extend the reporting and visualisations in the product. As Paul said over on the custom attributes thread we are not a general purpose CMDB although in the absence of one the technology is certainly flexible enough to be extended to cope. This is a more advanced customisation and would be better carried out, at least initially, with the assistance of our services organisation or one of our partners.
If you want to use the core model out of the box then we need to find a way to express the structure you need to support your problem in a way that works with the expectations of that model. Almost always if you approach the problem from the view of the service the servers are providing that tends to be the solution.
