Microsoft To Release SOA Tool Paving The Path To Oslo

Looking to broaden the reach of high performance .NET applications across multiple clustered tiers and platforms, as well as promote the use of Windows Communications Foundation (WCF), Microsoft this week will release a sample application, tutorials and benchmarks to help simplify the development and deployment of service-oriented architecture (SOA) composite apps.

Microsoft's NET StockTrader 2.0 with Configuration Service 2.0 will provide an early -- though narrow -- glimpse of the work coming out of the company's Oslo initiative, Redmond's next-generation model-driven SOA platform. Officials were quick to warn that Configuration Service 2.0 is not a community technology preview of Oslo, but did say that work from it could find its way into the eventual CTP.

"This particular set of code will help shape what we see in Oslo," said Greg Leake, director of technical marketing in Microsoft's connected systems division. "It goes to the heart of how we think about our SOA infrastructure going forward."

Microsoft first revealed its Oslo initiative last fall, which it described as an effort to bring together its services and modeling platforms by letting developers create models that "are the application" rather than models that describe the app. That shift is intended to allow for the sharing and reuse of services within an enterprise, with trusted partners and via cloud-based standard Web services. Microsoft said it will ultimately offer Oslo through next-gen technologies BizTalk Server V6, System Center V5, Visual Studio V10, BizTalk Services V1, and the .NET 4.0 Framework.

With SOA, Microsoft envisions the move away from monolithic applications that embed all the services, to composite apps that integrate multiple standards-based Web Services implemented in .NET through WCF.

Leake said Configuration Service 2.0 is a service that adds new functions for composite applications, including load balancing and failover of service operations, centralized configuration management, and a Web-based user interface that allows for the monitoring of composite apps once they are deployed.

Source Code
The source code and benchmarks will be available this week for developers to download from Microsoft's MSDN site. It builds on the company's .NET StockTrader, a trading application released last June based on ASP.NET and WCF. The StockTrader 2.0 sample turnkey SOA application, which mimics equity transactions, is similar to its predecessor though it's based on the newer .NET 3.5 Framework and implements the new Configuration Service 2.0. However, StockTrader 2.0 was built with Visual Studio 2005, and can be seamlessly imported into Visual Studio 2008. Developers currently working in Visual Studio 2005 can install and work with StockTrader 2.0 to better understand how to use WCF and SOA in their own applications.  They do have to have the .NET 3.5 Framework runtime installed, however.

When releasing StockTrader last summer, Microsoft emphasized its ability to interoperate with IBM's WebSphere Trade 6.1 sample capacity planner for distributed applications and published benchmarks that indicated StockTrader's performance benefits. Microsoft had also showcased StockTrader's interoperability with the WebSphere platform and J2EE and positioned it to developers seeking to learn how to build SOA applications based on .NET.

But it was not suited for simple development of SOA-based .NET applications. "It was an early implementation that no customer could implement on their own," Leake said. "The 2.0 version is completely abstracted so customers can implement their own applications and services and it only takes about 20 lines of code on the customer's part to do."

Leake has already begun demonstrating to local .NET user groups StockTrader 2.0 and Configuration Service 2.0 interoperating with IBM WebSphere. He hopes to show connectivity with application servers from BEA Systems, Oracle, and Sun Microsystems at Microsoft's TechEd conference in Orlando in June.

The new Configuration Service 2.0 should appeal to a broad swath of software architects, development managers and solution provider partners building mission critical SOA-based apps, said Burley Kawasaki, director of product management in Microsoft's connected systems division. "We're trying to demonstrate how you can really make the life of deploying, managing, and scaling that in the data center, more simply," Kawasaki said.

One developer briefed on the new release said he looks forward to working with it. "If you're an architect building distributed solutions on the Microsoft platform, you've got to pay attention to this," said Scott Stanfield, CEO of Vertigo Software Inc., a Point Richmond, Calif.-based Microsoft business partner. "You are not going to find any other source that gives you not only source code but performance numbers as well. Whether it's something developers will ultimately use, they can judge for themselves."

Upping the Ante
Leake describes the Configuration Service 2.0 as a general purpose set of tiered libraries that provide the ability to dynamically scale out services across clustered servers for both load balancing to provide additional capacity and also failover at the application and service operation level. "So if one operation is going to fail, it will automatically retry that on another clustered node," Leake said. "But it also is a general framework that provides a way of managing configuration settings and various elements of the configuration of your service environment central, even within a composite app for different pieces of the different service levels."

The Configuration Service is built into .NET and is based on managed C# code. That means it is a shared library that can also work with Visual Basic or VB.NET, Leake said.

More importantly, developers do not have to rewrite their apps from scratch using the Configuration Service, Kawasaki said. "You can take existing apps, existing services, however you've implemented them, and then you can leverage these as capabilities that help your apps scale," he said. "It's an important difference. Traditionally you would architect your app, and you would do things to it to performance tune it and to make sure it can scale and be distributed, these are very generic capabilities that can now be leveraged by broad general purpose .NET development."

About the Author

Jeffrey Schwartz is editor of and news editor of Visual Studio Magazine.