With the advent of Windows Communication Foundation, Microsoft developers have a new means to create integration infrastructure. For some of these developers, Web services will be included in their first integration tasks. In turn, many of these developers will tap into the expertise provided in the Web Service Software Factory recently released by Microsoft’s Patterns & Practices group.
In Microsoft parlance, a software factory is not a place where CDs of software are burned while pipestacks belch smoke. Instead, a software factory is a combination of frameworks, tools, wizards, DSLs, patterns and guidance, all based on known best practices for building certain types of applications.
We recently talked with Don Smith, product manager for the Web Services & Integration program on the Patterns & Practices team. He blogged about the recent Web Service Software Factory release in an entry called ... come and get yer Service Factory!
Smith admits the expression ‘software factory’ may have unexpected implications, although what it stands for is useful.
"The term has some connotations that developers probably won’t warm up to. It might make them wonder if it will make their jobs mundane,'' said Smith. ''But, the way I look at it, a software factory is a collection of things – assets - things that help you build a specific type of application.''
Smith said there are at least two distinct roles among users of factories. Here there is an implied process that can be strict or loose. Said Smith:''There are two models for how an organization might use the software factory. In one, the architect-decision maker uses it to create a base line, and developers pick it up from there. In another, the architect-decision makers encodes their guidance into the software factory.''
Wizards in the Microsoft space have traditionally been a double edged sword, simplifying development but sometimes ‘dumbing it down'' to ill effect. Smith suggested that the wizards that come with Web Service Software Factory are more adaptive.
''Something we have learned is that some people will use the wizard right out of the box and some people will want to modify it,'' he said. ''What we have found is that if you give them the ability, the majority are making changes to the wizard before the use it.''
As described by Smith, this service factory has a single-recipe (wizard) that will take a single WSDL and generate the service interface, service implementation, binding configuration and associated data contracts. It is important, he said, that developers realize they must make design decisions, while using the wizard.
''What we say is that, if you have a WSDL, you can feed it to the software factory and it will generate a lot of what you need. You have to make a bunch of decisions. The software factory has an implied architecture. We think it is the right one for enterprises Web services. Then you are going to have to finish it. That is part of the reason that the term ''software factory'' can be confusing..
What’s upcoming? Of course, tool innovation these days is a moving target with new software updates always around the corner. Smith said he and his colleagues are preparing for version three of the Web Services Software Factory, and are taking input from end users. What people are asking for a lot, he said, is modeling support and designer tools, with code generated from the models.
Architects should visit the Web Service Software Factory page on CodePlex for news and other updates.