A Tale of Two 'Cities'
Will 'Oslo' and 'Dublin' ease your distributed-systems development?
As Microsoft prepares for its Professional Developers Conference (PDC) later this month, the Connected Services Division is laying the groundwork for its "Oslo" modeling platform and "Dublin" Windows Server add-on.
Targeted at helping developers build distributed, .NET-based systems, Oslo and Dublin are among the prerelease bits set to make their debut at the PDC -- which will run in Los Angeles from Oct. 27-30 -- according to Microsoft.
The Oslo modeling platform for .NET, first announced in October 2007, will enable developers to more easily create domain-specific languages (DSLs): custom mini-languages, which are often industry- or component-related, that can be used to solve similar problems in a common domain, such as an architecture, framework or API.
Microsoft's existing DSL Toolkit, which focuses on graphical DSL, first appeared as an extension to Visual Studio 2005 and was baked into Visual Studio 2008. Oslo extends the existing DSL Toolkit, adds support for UML, BPMN and BPEL via a visual designer, and stores the artifacts and schemas in a common SQL Server database. The idea is to enhance traditional imperative programming techniques with higher-level models to improve flexibility in terms of extensibility and changing the behavior of the app, and to increase transparency and productivity.
"We're building platforms as an industry -- and at Microsoft -- that actually as first-class constructs know how to execute those models," says Robert Wahbe, corporate vice president of Microsoft's Connected Systems Division.
Specifically, Wahbe is referring to the new foundations that are found in the .NET Framework 3.x, Windows Workflow Foundation (WF), Windows Communications Foundation (WCF), Windows Presentation Foundation (WPF) and the upcoming authorization technologies code-named "Zermatt."
"Across the board, we're seeing the platform becoming model-driven," Wahbe says. "And really this is a pretty natural evolution; platforms are constantly trying to raise the level of abstraction. We used to program in machine and assembly language; now we started obviously programming in 3GL, and this is kind of the next logical step of representing pieces of your application as much higher-level models. The way we see it, it's not programming languages or models, it's programming languages and models."
Authoring and Integration
The Oslo modeling platform will consist of three tools: a visual designer (code-named "Quadrant"), the modeling language (code-named "M") for writing text-based DSLs and data models, and a "relational repository" that makes the models available to other .NET tools and components. Oslo is likely to be the successor to some of Microsoft's current modeling tools and guidance. For example, the Web Services Software Factory: Modeling Edition -- found in Visual Studio 2005, Visual Studio 2008 and Visual Studio Team System (VSTS) 2010, also code-named "Rosario," CTPs -- will eventually be replaced by Oslo, according to Microsoft.
Although some modeling concepts may be more prevalent today -- the ability to easily create DSLs is part of Ruby on Rails' broad appeal -- the initial response among some developers to more modeling tools in .NET and higher levels of abstraction is lukewarm.
"We've seen model-driven architectures; an idea from the seventies. It still hasn't managed to produce executable diagrams and so forth," says Stephen Bohlen, an application developer and project manager at New York-based Microdesk Inc.
"Why is it going to work this time?" Bohlen asks. "What's different? It's not like it hasn't been tried before. I'm interested to see what the answer is."
Data-driven app developer Roger Jennings, a contributing editor to Redmond Developer News' sister publication Visual Studio Magazine and OakLeaf Systems blogger, says with Oslo Microsoft is moving toward a repository for componentized software. The company's intention is to make the visual designer Quadrant usable by business analysts -- to modify workflows, for example -- but whether that will work is unclear.
"My feeling about Oslo is that they're trying to get business analysts involved in the design process, but not necessarily doing the design," says Jennings.
Some developers are questioning the implications of that. "Every time I see someone try to raise the level of software development abstraction that far up the chain to the point where non-software people can somehow write software, I get nervous," says Bohlen. "But not because I'm afraid of losing my job," he adds.
According to Wahbe, the upcoming version of Oslo is definitely targeted at the development community. For business analysts and end-users, he says, "What we expect is that those models will be surfaced naturally within their existing toolsets."
For example, SharePoint has document approval that's using a model and workflow "under the covers," but that's not directly exposed to the user.
However, he adds, "The tool that we've built is very easy to use and we imagine over time analysts and IT using that tool."
"We're building platforms as an industry -- and at Microsoft -- that actually as first-class constructs know how to execute those models."
Robert Wahbe, Corporate Vice President, Connected Systems Division, Microsoft
Developers still need to be sold on the Oslo concept. "To me, Oslo is like the TurboTax of software development," says Bohlen. "Every one of those things is going to fit the 60-percent case and some of those people will be satisfied with that, but for most things there's too much complexity to abstract it that high and still have it work."
Microsoft expects some developers may say, "I want to build a Web service, and I don't want to worry about creating a DSL." In those instances, a common pattern may be for ISVs and architects to create the Web Service DSLs using Oslo, and developers will use the DSLs.
"What you're going to see is Microsoft building lots of DSLs for things that we care deeply about, things like the database, workflow and Web services," says Wahbe. The database-modeling capability will be available in the Oslo CTP.
Developers can test out Microsoft's early efforts with Oslo soon enough and provide the company with valuable feedback. The delivery vehicle for the final product is undecided, according to Wahbe, but Oslo will be part of the Visual Studio 2010 rollout.
Distributed App Server
The PDC CTPs will also include early looks at Dublin, the new app-server technologies developed to increase the performance and scalability of service-oriented software. Oslo can be used to model any domain, according to Wahbe, and one of the runtimes developers can target is Dublin.
Dublin is designed to host apps built using the next generation of the .NET Framework's WCF messaging and WF workflow APIs. "What we're doing is extending IIS as the host within the Windows app server to work with long-running and durable Web services and workflow," says Wahbe.
The final release will integrate with BizTalk Server, but BizTalk is not required, according to Microsoft. For now, Dublin will be offered as extensions to Windows Server 2008.
While the concepts behind WCF and WF, launched in .NET 3.0, were applauded, the early versions of the technologies meant steep learning curves, little to no support for REST principles -- the common architecture on the World Wide Web -- and frustrating workarounds for developers. Earlier this year, .NET 3.5 added some support for RESTful Web Services to WCF.
Microsoft's move toward finally embracing RESTful principles after an ill-fated allegiance to SOAP was foreshadowed in its ADO.NET Data Services version 1, code-named "Astoria," which was available in .NET 3.5 Service Pack 1 (SP1) released in August. .NET 4.0 will move firmly into Web 2.0 territory by enhancing WCF with REST, ATOM, Plain Old Xml (POX) and additional support for the WS*-stack: WS-Discovery, WS-BusinessActivity, WS-I BP 1.2 and SOAP over UDP.
"With WCF, one of the things that we're seeing from customers is that they're doing a lot of work around Web 2.0 with things like REST, ATOM and POX," says Burley Kawasaki, director of product management in Microsoft's Connected Systems Division. "Investments we're making in the 4.0 release are making it even easier to build these RESTful services as a seamless extension of .NET."
This month, Microsoft is releasing a WCF REST Starter Kit on CodePlex and asking early adopters for feedback on its templates and tooling. The starter kit offers developers Visual Studio 2008 tooling, integration with ASP.NET and guidance on common server- and client-related issues such as caching, security and error handling, as well as templates for REST Singleton Service, REST Collection Service, ATOM Feed Service, ATOM Publishing Protocol Service and HTTP Plain Old XML Service.
"Finally, they're getting around to supporting Plain Old XML, for which I've been agitating for a year in Astoria," says Jennings. "ADO.NET Data Services version 2 is going to take advantage of that and become a bit more scalable, for instance -- how much more I don't know. It will certainly enhance Astoria version 2, and they've given it framework status, so they're really looking at Astoria as the Web 2.0 communications protocol for Microsoft components."
In addition to messaging and communication, distributed apps often require more complex operations in the form of transactions and workflows. Microsoft is improving the integration between WCF and WF, and also ratcheting up the flexibility of its WF tooling with an enhanced designer and end-to-end declarative programming support (XAML) across WF, WCF and WPF.
"Today you can model parts of the applications and then you still have to drop into code," explains Kawasaki. "So one of the big focuses of the 4.0 release is trying to create a much broader set of apps that you can build entirely just using declarative programming. We're adding workflow models. We're adding all these pre-built activities, so it's not 100 percent, but something close to 80 percent to 90 percent of apps that you can write without having to write code."
Better performance and scalability are also expected in WF 4.0. Early previews of the workflow engine are clocking in with 10-times better performance during benchmark testing in certain scenarios, Kawasaki says.
Early adopters of Dublin and its related dev frameworks include the Microsoft Dynamics team, who have committed to using the new technologies in the next releases of Microsoft Dynamics AX and Microsoft Dynamics CRM.