I have signed up to do a Dynamic Systems Initiative talk in about a months time and so have been doing some more in depth research into this area.
DSI is all about system operation and administration and effectively has three levels, a base metamodel called the System Definition Model SDM , and two set of tools; Development and Operations. Additionally there is then a set of processes above this which are defined by Microsoft Operational Framework (MOF), which is an implementation of ITIL in the Operational Space or Microsoft Solutions Framework (MSF) in the Development arena. Both of these could be thought of as part of COBIT which is a very high level set of processes for IT which I quite like as a structure but don’t particularly agree with the specifics.
So that is a quick run through operations from top to bottom. Generally with these things I start at the bottom and look at the data structures to see how the technologies and processes are supported which actually seems to be a fairly good general architectural principle. That is to start the design based on the data or information structures rather than the middle tier or UI.
This is certainly different from the way that most people in MS do design which normally starts at the UI (e.g. use cases). Whilst this can be a useful approach in some specific instances I think that the general case best design point is from the data schemas. In fact I think I will make that Platt’s fourth law:
In general the architecture of a system should start with the data or informational schemas.
Anyway I digress, back on DSI I looked for the SDM schema and couldn’t find anything on any public site so I had a look on some of the internal shares to find the SMD schema. It didn’t immediately strike me as the way I would design an operational schema so I will have to go and think about it in more detail. Meanwhile of course there is a lot in the technology and tools associated with DSI which is published and very interesting, particularly the integration with the design tools space (
As a matter of interest where would you start to architect a system; top, bottom or middle?