I just got to play around with Microsoft Oslo which is basically a modeling platform (or set of technical investments as officially described) and is currently available as a CTP download. Part of the platform is also a so-called “M language” that helps you write you own modeling constructs that can be used within your specific domain and help you work with your data in a domain specific manner. The whole idea behind Oslo basically took me years back to university where we were writing compilers for our own programming languages and used compiler-compilers (such as YACC) to create them (in this case this would be our own model).

So if you have similar experience, I guess grasping Oslo will not be such a problem …

As I see it the story with M is pretty similar since it provides you with a language that must of course conform to the grammar (MGrammar) and that can define your “modeling environment”. With that it is easy for you to build your own domain-specific language (read model, set of instructions, data manipulations, …) that can be the basis for high level modeling of your environment (i.e. applications, business workflows, physical networks, …).

After you define your model in M language, you can compile it and then import all the constructs into the Oslo Repository (centralized store for all models). From there they can be easily accessed by anybody (or any tool) and used for building or describing your specific environments. The models can be used visually (like in the tools called Quadrant) or programmatically (in sense that you can write your “code” or set of instructions that conform to your model).

This is all very interesting, since it will in no doubt bring another layer of abstraction to the process of manipulation of our IT environments. What worries me at this point is the freedom that comes with it! Each of us can describe the models as we see it fit and as it makes sense to us, but sooner or later some standardization between environments/models will definitely be needed. Microsoft is already providing some of the models (i.e. for business processes) but I guess somebody should jump in quickly in order to avoid confusion later.