The concept of modelling software in an abstract manner to ease the process of creating the real thing has been around for a while. And in all that time it’s never really taken off in the mainstream. So it’s pretty exciting to hear Microsoft has decided to give it a go – Microsoft have always been clever when it comes to examining the landscape, taking out the best bits, and building something that stands out from the rest. Let’s hope they learn the lessons of others and produce something that’s really different.

So What Is Oslo?

It’s early days on the road to Oslo but a few clues have popped up over the last few months as to what it actually is.

A pretty common definition is,

  • A tool that helps people define and interact with models in a rich and visual manner
  • A language that helps people create and use textual domain-specific languages and data models
  • A relational repository that makes models available to both tools and platform components

Microsoft’s SOA Vision - The Model is The Application - Burley Kawasaki, director of Microsoft's connected systems division, is reported to have described scenarios whereby business analysts, architects and developers collaborate on a model – great, no problem there – but then he goes on to say, “Models then become the app. You send the model to the server, not the printer” – HUGE call. The implication here is that the modelling tools alone can be used to create a fully functioning application without the need to write code! If you’re a Kiwi then you’ll know what I mean by “Yeah Right!”.

Ron Jacobs has an interesting overview of Oslo. In fact he uses the term Oslo to encompass both model driven development and services (hinting at the Cloud Services concept). imageMore reasonably than Kawasaki he accepts that Oslo has not managed to get rid of the need for developers (phew) and the diagram below shows the overall concept.

  • Creating a model – BA’s, Architects and Developers communicate in harmony to completely describe a system
  • The model is stored in a new repository
  • Developers write some code to support a model – perhaps implementing the black-boxes dragged on to a design surface, or writing the services from the contracts defined in the model.
  • Then the model is magically deployed – look Mum no hands!

 Microsoft will incorporate UML as part of its effort to create its Oslo unified modelling environment for SOA – back in June 2008 Jack Vaughan reported on comments made by Gates at TechEd 2008, Olando. This is great news. Basing models on an established specification is going to broaden its appeal and leverage modelling knowledge already in the community. Further, UML support is going to be built right into VS 2010, check this out for some examples and have a look at some more on Channel9 - it looks awesome. If this is all that gets delivered it would be enough for me!

Some Thoughts

It’s been tried before and it’s never worked – I have to admit that was my first thought. But, if Microsoft pull this off I’ll be very, very impressed. And it will be huge – it would revolutionise the way we create software and communicate with our clients and colleagues. Everyone, including Microsoft themselves I suspect, knows this is a big challenge. But hey, if it was easy everyone would be doing it.

Finding the right level of abstraction – in a hilarious interview (only because of the most robotic, uninterested, sounding female interviewer I’ve ever heard), Bob Muglia, Senior Vice President, Microsoft Server & Tools Business discusses Microsoft’s vision for software modelling. He discusses the problem of today’s modelling tools which model business problems at a very high level of abstraction. As a consequence the model is ultimately separated from the applications that are built from it. But, in my mind that is the fundamental challenge to Oslo – I think you should be modelling your problem domain at a high level of abstraction before you start thinking about how the application will be constructed. That’s the whole point of modelling – it’s a means to an end. It helps you communicate ideas with clients and team members. Problems are often best described in conceptual terms and you only understand how a system is put together once you’ve been through this process.

It’s not all about SOA – talk of Oslo always seems to be associated with SOA. Often by its association with BizTalk and Services in general. But, surprise, not all applications are based on SOA. Not all applications can be built by simply composing a convenient set of services. Most of the applications I build at the moment have a great deal of implementation details centred around the user interface – navigation, usability, layout, data entry, accessibility and patterns to map the user interface with data and business logic. All these things are typically difficult to model using traditional CASE tools. Will Oslo limit itself to a subset of problem domains?

Attracting the right audience – traditionally Microsoft’s most enthusiastic audience has been the development community – they’ve built us the best IDE, given us the coolest new languages and given us the broadest range of products to build the best solutions possible. They know what we like and we let them know when we don’t like it! Put simply – they “get us”. However, a number of tools have come on to the market over the years have attempted to reach a different audience. Biztalk orchestrations and WF were both touted as being tools that business users could. I just doesn’t happen – even seasoned developers struggle with these tools at times. Team Foundation Server is another example of a product aimed at more than just developers – the whole team right?. Of all the people I’ve talked to I have never heard of PM’s or BA’s using it – sure developers are playing these roles within TFS but in general it’s only developers using this product. So if Oslo is intended to be used by non-technical users then Microsoft need to ensure they don’t make something that looks like an IDE or takes a small army to install and maintain – this will kill it.

So it’s going to really interesting to see where this all goes. I hope Microsoft pulls it off.

kick it on DotNetKicks.com