CAVEAT: this is a very early look at exciting new technology that was announced today at the SOA conference in Redmond. Anything can change, and certainly some of what I write below WILL change as the technology evolves. I’m throwing this out on the 'Net for the benefit of those, who like me, are thirsty for any info/opinions they can get.
Every once in a while an announcement happens that has the capacity to profoundly change the rules. I still remember clearly reading the initial press release in 1999 about this new thing from Microsoft called “BizTalk”, and, I remember telling a co-worker that I was going to keep an eye on this new BizTalk thing. Here I am, 8 years later, still deeply immersed in the world of BizTalk.
I would rate Microsoft’s Oslo announcement today as being equally important. It is an ambitious undertaking, one that changes the rules for .NET developers. For me, this is déjà vu all-over-again with that 1999 press release, with the significant difference that this is an evolutionary change, and the reach will be far greater, touching most .NET developers.
You’ll be seeing lots of Oslo information soon. I’d suggest paying attention to it if your career has anything to do with software architecture and development.
What is Oslo?
Oslo is a holistic platform for developing and consuming services. It is an ambitious and innovative effort. It will take some time until we see all the benefits, but Microsoft certainly has the resources to make it happen, and from everything I’ve seen, they have the passion and drive too.
At the highest level, Oslo is:
· Modeling tools
· Model runtime
· Model repository
You’ll notice a common thread above, the word “model”. Oslo is all about models. Being a visual person, I just LOVE this. I have long said I wanted to go to a repository, right-click, say “create new service”, and start doing envisioning-time service modeling. I want to use the same tools to do development, eventually say “right-click build deployment package”. Ultimately, I want to use the same tools to “right-click retire service”. It will still be some time before we get to that, but, based on what was shown today, we’re definitely heading in that direction.
The way this works is that there is an underlying modeling language (a new XML vocabulary) that describes a service or composite application. The design tools will allow creation of models, using a visual design surface.
Modeling will not just be a developer experience, business analyst will use them during design phase, developers during implementation, and IT pros during deployment and maintenance. At the SOA conference, we were shown a prototype modeling tool that did everything from specifications capture through to managing machines running the application. LINQ queries can be used to query the environment. Although it wasn’t shown, presumably different tools may be required tailored to the the different roles, but all will act on the same model. Knowing Microsoft, even if this is not provided out-of-the-box, they will hopefully provide an API that will allow creation of very role-specific tools. Tools I’ve seen before use models to describe an application or service, but with Oslo, a model is not a description of the application, it *IS* the application. This is significant, because it is a fundamental change, models are no longer at the periphery of application development, they will now be at the core. And, models will be used across the entire lifecycle, not just in design. The modeling tool shown at the SOA conference let the IT Pro snap a line between an implementation artifact and a physical machine (ie: a Web service and a Web server). It’s a wonderful bit of abstraction.
The model is stored in the repository, which makes the repository a key part of the overall stack.
A runtime environment hosts the application/service model. Conceptually this is like the host required for a Windows Workflow solution, but it’s much more comprehensive, and is responsible for all aspects of the application.
Why is Microsoft doing this?
The vision statement for Oslo is: Significantly simplify the effort required to design, build, deploy and manage distributed applications within and across organizations.
For developers working with the Microsoft technology stack, using .NET, BizTalk, IIS et al, we have everything we need to create sophisticated distribute applications. However, there are a lot of moving parts. From what I know of other technology stacks, the story is the same there. In addition, most of us now work in heterogeneous environments, where distributed applications may span a variety of technologies, and possibly business partners and customers. Sure, we can do this stuff today. However, it takes skilled developers and architects to blend all the pieces into a cohesive whole, and it takes time. Visual Studio, .NET and BizTalk made developing applications easier, Oslo aims to make the development, deployment and management of distributed applications easy. The stated target is a 10x improvement in productivity, which if achieved, would make the development of distributed applications much, much easier.
When can I get it?
Oslo spans several technologies. There will not be a single CTP or beta, rather there will be multiple CTPs and betas for the various parts. Remember, this is not a product we’re talking about, it’s a platform and tools. Microsoft indicated that there will be CTPs and betas available in 2008, with production-grade releases after that. We are at a very early stage of the platform lifecycle, but the presentation at the SOA conference made it clear that much thinking had been done about all the facets the platform needs to include, and the running code demos showed that at least some development is currently being done.
What can I do to get ready?
If you’re an enterprise developer today, you should be “thinking SOA”. Everything should be services .
SOA is not a product, it is a way of thinking about software development. When faced with a functional requirement, think about how that can be decomposed into a set of services (but don’t go too far!). If done properly, then those services will not only solve the current requirement, but will also be building blocks that can be aggregated to meet future needs.
Once you have a portfolio of services, you’ll soon want to compose them into a composite application. There are different ways to do that in the current Microsoft technology stack, BizTalk is my tool of choice. It provides enterprise-grade support for services, and you can think of this as a runtime for services.
These are exciting times. We have a series of technologies (WS-* specs, BizTalk Server R2, WCF/WF/WPF) that are all maturing nicely. The Oslo wave will build on this maturity and has the potential to dramatically improve our productivity and agility.
I intend to keep a close eye and be deeply involved in this Oslo thing and what it ultimately evolves into.
[updated] Here's a brand new shiny link to Oslo info at Microsoft.com:
http://www.microsoft.com/soa/products/oslo.aspx