HOUSTON -- The future of application development for Microsoft is steeped in software modeling, particularly as the company moves more of its assets to a cloud-based computing model. Microsoft's modeling initiative is codenamed "Oslo."
In an interview with eWEEK at the Microsoft Worldwide Partner Conference here, Steven Martin, senior director of product management in Microsoft's Connected Systems Division (CSD), said he has been working to dispel a lot of the skepticism about modeling in some circles. Indeed, mostly there has been more of a misperception about what modeling means, particularly to Microsoft, Martin indicated.
"Modeling today for most people is really about application workflow," Martin said. "But that misses the large point," he said, noting that as companies move into a services world where many of the components of applications they use were not written by the organization, there is a need for modeling to help bring those services together more easily than having to write code. Also, in a virtualized environment where an application outgrow its hardware capacity and has to move to cloud-based assets, modeling can help to set up how the application should scale. In addition, for managing these complex services- based applications, enterprises will need to get policy information for the services that is easier done via modeling rather than writing code, Martin said.
"When you move from service orientation to virtualization, modeling goes from a 'nice-to-have' to a 'must-have.'"
Microsoft announced its "Oslo" strategy last year as part of an overall service oriented architecture (SOA) initiative, but Oslo is about much more than SOA. It is Microsoft's core modeling technology that will help take Microsoft deep into the cloud. Modeling will get you to the cloud and the cloud will get you to the revenue, Martin told Microsoft partners.
Martin said the future of application development at Microsoft involves modeling and services and will feature analysis and design tools, next-generation declarative languages, process-aware engines and platforms, and self-aware system management. The Microsoft products and tools involved in this will include BizTalk Server 5, BizTalk Services 1, Visual Studio 10, Microsoft System Center 5 and the .NET Framework 4 -- all upcoming versions of core Microsoft technology.
Martin also said the worlds of web services/SOA, modeling and the cloud are all "vectoring together... In a world where you're going to have virtualization at the hardware layer and at the application layer, you're gong to have to model."
Moreover, Martin talked about the concept of the "Dynamic Datacenter" that uses hardware virtualization, application virtualization and models to handle larger and large workloads. "Hardware virtualization and software virtualization are two distinct things. That's where modeling comes in. Writing applications that are an aggregation of services is hard, and managing them is hard. Modeling will be the way out of jail for building these huge applications that people are building in the cloud. And that's what we're doing in Oslo. Modeling technology is not only important now, it's critical."
Martin came to the Microsoft partner conference -- which ran July 7-10 -- to preach the gospel of modeling, SOA, cloud computing and the overall services opportunity to Microsoft partners. In a session entitled "Service-Oriented Architecture: What You Need to Know," Martin said there is more than $1 billion in services revenue to be made this year by Microsoft partners. BizTalk Services, Microsoft's "firewall friendly" messaging, identity and workflow services solution is the company's core offering in this space. It is also referred to as Microsoft's Internet Service Bus" and it extends Microsoft's server reach and capabilities for cross-organizational composite applications.
"When people think of services - either on premise or in the cloud - they often have an image in their mind of this very flexible and agile thing," Martin said. Such as something that is always available and instantly reused by any new application you might want to develop, he said.
"But it's really just the tip of the iceberg," he added. "Look underneath the waterline, and you will find all of the usual complexity of distributed software -- services are just software after all. They still run in datacenters, have to securely access and cross networks, and need sophisticated infrastructure and tools to manage them, etc. "
Moreover, composite applications are more complex for IT to deploy, manage and evolve, Martin said. "The fact that pieces of the composite application are finer-grained and may be widely distributed across servers, networks, platforms and possibly organizational boundaries creates a need for sophisticated solutions," Martin said. Composite applications present new challenges around scalability, performance and reliability. Enter modeling.
In a recent discussion about Oslo and modeling at the Microsoft TechEd Developer conference in Orlando, Fla., in June, Microsoft chairman Bill Gates described how Microsoft is working to make development more agile and improve collaboration across different roles from application design through deployment.
"One of the key ways we think we can deliver this agility is by increasing the semantic level that developers operate at by use of model-driven programming techniques, which frees them up to focus more energy on the original intent of their application rather spending a lot time coding the low-level implementation plumbing," Martin said. "Now, model-driven concepts are not new you might say...developers have been using abstract models to describe applications for a long time (e.g. data models, process models, object models) but there have been a couple of challenges that prevented mainstream adoption."
First, the use of modeling today is complex and used in organizational silos across the development lifecycle, Martin said. Each person in the development chain uses their own different tools, their own notations, their own way to store and share models, and their own way to execute these models, he said. This creates communication barriers across the lifecycle and prevents having a single view of the application end to end, he said.
And the second major challenge is that these models get out of synch as soon as they are created; there is a hand-off where the initial model leaves the designer, gets printed out on paper and thrown over the wall to the developer to be built in the form of an application, Martin said. This handoff is imprecise and causes errors, as the designs are never kept fully up to date with the application running in production, Martin said
"We have a vision of making model-driven development a mainstream part of application development," Martin said. "To do this we are building a general purpose modeling platform, where we take models out of silos and into a shared representation that can define an end-to-end application."
Thus the first key investment for "Oslo" is a repository that will deliver the foundation for a unified approach to managing metadata across Microsoft, "and our product teams like Visual Studio and System Center are working towards aligning product visions and roadmaps to build upon this shared repository technology," Martin said. "The repository will build naturally upon the SQL Server database and provides optimizations for storing and sharing models."
Then Microsoft is developing new analysis and design tools that help deliver a rich model visualization experience for creating, editing and browsing models. These new visual tools will allow rich editing of application models in the repository across roles in the lifecycle, Martin said.
Third, Microsoft is working on a new declarative language that provides developers with an approachable, textual format for authoring models. "This will enable the developer and third-party ecosystem to have a natural development experience for creating value-added extensions to base models that we provide or creating their own entirely new models," Martin said.
This language will also provide deep integration with repository to enable easy import/export of models with the repository, and support interoperability of models between tools and domain specific modeling notations, he said.
Martin said that in addition to these innovations that enhance the design-time processes, "we're also making sure the models are executable -- this is where we deliver true business agility, since the behavior of the running application can be updated simply by updating the models stored in the repository. Models will no longer just describe the application; they will actually be the application. I like to refer to this as sending the model to the server, not the printer..."
In particular, Martin said, "To deliver this we're also investing as part of our Oslo efforts in the concept of a 'Process Server.' This brings together the ideas of a process engine -- that can manage federated processes spanning distributed apps -- and monitoring the health of this composite application within the system management environment."