UPDATE: Since publishing this article, the scope of the term 'Oslo' has been reduced to cover only the modelling tools and reporitory technology that Microsoft plan to introduce. They will still deliver the entire platform, as planned, but parts of it now go under different codenames ('Dublin', 'Azure', etc.).
Noon (Redmond time) on Tuesday 30th October marks the moment in history we can begin to talk publically and openly about Microsoft’s 'Oslo'. This morning, Google reported just one hit (posted on Sunday) about ‘Oslo’, so this really is 'breaking news'. Oslo is the codename for the next generation of Microsoft's SOA platform...'Microsoft SOA vNext' if you will. It is a huge vision, and one which Microsoft is throwing some serious resource at. Their strategy will unfold over several years.
For the past couple of years or so, the BizTalk community has speculated over the possible feature list of 'BizTalk vNext'. There will be a BizTalk Server vNext, of course (no doubt there will be many future versions of your author's favourite integration/BPM tool), but this is only one part of a much, much wider roadmap which will build out Microsoft's emerging service-orientated platform. Oslo will emerge through many releases of many different technologies, including the .NET framework, Visual Studio, BizTalk Server and System Centre.
The technical detail will emerge over the next year or two, but today Microsoft has provided a broad overview of its plans. If you look back retrospectively over Microsoft's public statements in recent months, you can see the central messages carefully encoded in rather bland, unfocussed language. This is a strategy that has taken some time to fit together. The architecture and broad design is complete, and Microsoft's Connected Service Division (CSD) is now in build mode. Today has been all about bringing the picture into much sharper focus and, after a few private 'dry runs' in recent weeks, beginning the task of communicating the vision to the people who matter most - Microsoft's enterprise customers.
In at least one of those 'dry runs', the advice Microsoft received from several people was to beware of giving a dangerous impression of radical technological change that could undermine existing investment in today's toolsets. The announcements in Redmond today have clearly been made with this feedback in mind. In Oslo, 'nothing goes away', as Steve Swartz so emphatically stated a few weeks ago to a selected audience of architects. CSD is clear on this point. They will not compromise your existing investment in technology and skills. One dramatic indication of this, made public today, is that the BizTalk community has been largely mistaken in believing that Microsoft intends to replace XLANG/s-based orchestration with a new WF replacement (I'll have to change a couple of my slide sets). This is not the right way of looking at things. XLANG/s will be supported in Oslo, and existing orchestration code will continue to function as before. You won't need to re-write a line of existing code. However, Oslo will, over time, shift the emphasis to WF in terms of future investment. As to exactly when and how a WF-based technology and host environment will reach 'parity' with XLANG/s in terms of its suitability for building highly robust, performant, reliable automated business processes, we shall have to wait and see. Microsoft can’t tell you because they don't know for certain themselves.
This commitment to technology retention is good news. WF is an exciting technology that holds great promise. However, it is different to XLANG/s in a number of key areas. It was difficult to see how a smooth migration path could be implemented for moving existing BizTalk orchestration code to a WF-based engine. For an organisation that has spent a lot of time and money automating their business process with the existing BizTalk toolset, the idea of forcing a wholesale migration of existing code to a fundamentally different platform holds little or no attraction. Existing customers need a route from the old to the new that they can follow at their own pace, and in a way that supports their own business goals and requirements, rather than Microsoft's. Oslo will provide this.
So, if 'nothing goes away', what will Oslo introduce? The main thing here is to shift your thinking away from the ‘traditional’ product-centric viewpoint to a more holistic platform-centric perspective. Oslo is about the SOA platform, and touches on many different products and technologies. It embodies the whole reason for CSD's existence. CSD was formed to bring together the various product groups responsible for WCF, WF, MIIS (identity management), Active Directory Services, BizTalk Server, Commerce Server, Host Integration Server and various other technologies. Its mission is to evolve a coherent strategy and roadmap that embraces the entire range of integration, workflow, business process and business service software offered by Microsoft. Oslo is the fruit of this endeavour. At its heart are a number of core technologies and architectures. Microsoft lists these under five headings as follows:
The .NET Framework provides the technological foundation on which Microsoft is building its SOA platform. In particular, Oslo will build on new versions of the foundational libraries introduced in version 3.0 and shortly to be enhanced in version 3.5. If you want to understand, in depth, the core communication technology for Oslo, you need to study WCF.
There is a lot of confusion about the nature of WCF. It has sometimes been mischaracterised, and often misunderstood. For example, it is not an extension to MSMQ, although it supports queue-based MOM (message-orientated middleware) and provides bindings 'out of the box' for MSMQ. It equally provides pre-defined bindings for SOAP, HTTP, sockets and named pipes, and can be extended to support all kinds of additional bindings. It is not an ESB (Enterprise Service Bus), but it is an ideal technology on which service buses can be created (see below re. the Internet Service Bus). It has a strong orientation towards SOAP and POX (Plain Old XML), but is not ultimately coupled to these forms of message representation - a point that will become clear in .NET 3.5 with new-found support for JSON. It is flexible enough to embrace the whole range of common message patterns and interactions supported across a wide range of existing technologies, and is hugely extensible. It is rigorously standards-compliant (specifically, WS-* standards, of course) I've seen no framework quite like WCF, and its true power as a universal substrate for service-based communication will have a profound and deep impact on Microsoft's SOA platform over the coming years. Watch WCF closely!
WF is set to go from strength to strength. I would dearly love to talk about some of the innovations and changes that Microsoft plans for this library, but that will have to wait until a future date. For the time being, I can say that WF is set to become easier, richer and better aligned to real-world workflow creation.
Microsoft's public announcements in this area focus only on how BizTalk Server vNext will be deeply integrated with the framework. Remember, though, that 'nothing goes away'. Retaining the existing technologies, but aligning them deeply with WCF poses some interesting challenges, and I suspect that it could take more than one release to see the full benefits of that deep integration.
Microsoft talks about 'our BizTalk family of products'. I've stated in a previous post that the term 'BizTalk' is rapidly changing from a product name to a 'brand' name. The story on services will end up being very much richer than simply a new version of BizTalk Server. Expect to see some really fundamental and exciting shifts in how server functionality, currently tied into the single centralised product, not only evolves, but opens out and becomes integrated into the SOA platform as a whole. There is much more to the server vision than you might realise from today's announcements, although it will take a little time for for the full picture to emerge.
This area includes one of the most open and visible parts of the Oslo strategy. You can learn a great deal about the future by studying the emerging Internet Service Bus technology. You can start that journey by visiting http://labs.biztalk.net/ and downloading the CTP code. ISB is a truly exciting part of the vision. The focus is on building composite applications that combine SaaS (software as a Service) with local (on-premise) services. Microsoft calls this S+S (Software and Services). In order to support the ISB, Microsoft is currently working on a number of enabling 'cloud' services, as well as a local WCF-based code library (System.ServiceBus - note the lack of the term 'Internet' there) that manages and adapts WCF bindings to the ISB. These cloud-based services include identity management, communication relay, name-based pub/sub and (in future) workflow.
In today's announcements, Microsoft has chosen to talk specifically about the ISB under the category of services. However, Oslo is about enabling service orientation across the enterprise as well as between organisations, and we can therefore expect to see much more in this area as the roadmap unfolds.
One of the main ideas here is model driven development (MDD), and this is one of the major themes that Microsoft is now discussing publically as part of Oslo. Indeed, we have seen this coming for some time. The vision ties in broadly with the thought leadership Microsoft has provided around the notions of Software Factories, Domain Specific Languages and modelling. Broadly speaking, Microsoft is (somewhat controversially) touting a different vision to the MDA (Model Driven Architecture) approach that has taken root in the Java space. I really don't want to get into arguments about the merits/demerits of Microsoft's approach, but suffice to say that one of the chief differences between MDA and MDD is the concept that 'the model is the code'. MDD dispenses with abstract models and the corresponding need for both platform-independent and platform-specific models. Instead, it advocates the use of the domain-specific modelling approach in which models are simply an abstraction implemented directly over the underlying code. The model is the code.
This is a direct evolution of a basic approach which all BizTalk developers are familiar with. Today's XLANG/s orchestration technology, for example, embodies this principle. XLANG/s is a DSL surfaced through a graphical designer which supports process modelling in a direct and intuitive fashion. The process model is a form of code. It is 'compiled' into intermediate forms (C# source code which is then compiled into MSIL) and ultimately into the runtime native-code image via the .NET JiT compiler. The principle works well. I have often worked effectively with business users and domain experts to model and design complex BizTalk solutions using the orchestration designer as the principle design tool. Little do the domain experts realise that they are collaborating directly in code development.
Oslo has a really big story to tell around the use of models. I've chosen to focus on MDD, but Oslo goes beyond mere model-driven architecture, design and development. It also encompasses model-driven deployment and configuration. Models and metadata are at the heart of the Oslo vision with plans for rich unified modelling toolsets addressing many different perspectives and levels of abstraction. If Microsoft delivers on their promise, expect your world to change dramatically.
Modelling tools are just one half of the story. Having created models and metadata, we need some way of storing and managing them for use at the enterprise level. For example, models can be used to manage the deployment of code artefacts and configuration across different platforms and servers, and the metadata associated with these models needs to be managed and versioned. This is what the repository is all about. Again, the full impact of Microsoft's plans in this area will only begin to become apparent over the next couple of years, but the vision is very broad and rich, and supports a number of addition important services in the emerging SOA platform.
It is always frustrating to have to wait for longer-term plans to come to fruition. Unfortunately, Microsoft operates in the real world of software development, and it will take considerable time and effort for them to construct and implement this ambitious, complex and multi-faceted service platform. Microsoft has today suggested that we will see CTPs and TAP programs as soon as next year. The general expectation seems to be that major components will probably ship by the end of the decade with incremental evolution of the Oslo platform over a number of years. This is long-term thinking from CSD, and a major undertaking that will keep them busy for a long time to come. The important thing is that, after a couple of years in which the evolution of BizTalk Server and related technologies has, frankly, been unclear, we are now beginning to get a more detailed picture of the shape of the future. Microsoft has truly ambitious plans and will have to strive hard to realise the kind of platform they have in mind. Make no mistake, though. CSD is firmly committed to the task, and the future, once again, looks exciting.