When I complained last month that we haven’t seen enough of Microsoft’s Oslo to know what it is, Microsoft responded.
To recap: my gripe with Oslo — and specifically its programming language M, which is the most concrete part of Oslo we’ve seen so far — wasn’t that it isn’t useful. M lets developers build out domain-specific languages (DSLs) relatively easily, and that’s obviously handy. But a new language to define DSLs does not a SOA platform make, I argued.
Microsoft’s answer: Oslo isn’t about SOA; it’s about modeling (hence the “M”). SOA is one of the domains that Microsoft anticipates could be helped by Oslo, but the terms are not synonymous, said Burley Kawasaki, director of developer platform product management at Microsoft.
The problem with data modeling as it exists today is that everyone has their own way of doing it, which means nobody can talk to anybody else, Kawasaki said. Even within a given company, different groups may model data differently, which makes the handoff a pain point. Microsoft’s vision is to unify data modeling in the same way that XML unified markup.
For instance, frameworks like WPF and Spring are increasingly using metadata to build portions of applications, Kawasaki said. That means developers have “a whole bunch of mini Oslos,” each modeling and executing its own metadata; it’d be like each application writing its own XML-like specification and the tools to use parse and write it.
The biggest thing XML has going for it is that it’s a standard. If you’ve got an XML document, it’s trivial for me to read it, manipulate the data, and spit it back to you in a way you understand. That’s what Microsoft wants Oslo to do for modeling, and it wants M to be the workhorse behind the scenes.
Microsoft’s vision is to be able to actually compile and run the model, just as WPF compiles XAML and turns it into a program’s UI. That ensures that the model changes as the project goes forwards, instead of just being printed out and forgotten among a stack of papers. That’s what M and its compiler do.
But that gets us back to the original issue: we haven’t seen that kind of pervasiveness from Oslo yet. Microsoft has shown us how to use M to develop DSLs, but that’s a far cry from using it to build standardized, useful, easily transferable models.
That goal depends on three building blocks, said Kris Horrocks, senior product manager for Microsoft’s developer platform team:
- a common way to represent models
- a common way to store them; and
- a common way to display and manipulate them
M addresses the first of those steps, and the Oslo repository — currently SQL Server — addresses the second. The third will presumably be the role of Quadrant, the GUI model editing tool that Microsoft has announced but not yet demoed.
But beyond the technical building blocks, Horrocks said, is industry adoption. After all, you can’t address a lack of standardization just by throwing another contender in the ring. To that end, Microsoft has included M in its open specification promise, and it’s encouraging developers to get a head start by downloading M, playing around with it and possibly even contributing to the project.