Service oriented architecture is gaining
traction. Proponents claim that it promotes reuse and innovation through recombination. To understand this, one should read the concept of modularity. One book that I would highly recommend is
Design Rules by Baldwin and Clark. They define modularity as a design structure in which tasks and parameters are interdependent within modules and independent across them. Their most interesting contribution (IMHO) is how the process of modularization occurs through design rules. Design rules clarify the architecture of the system, describe the interface and procedures for integration and testing of modules.
When we apply the above to SOA, we have to first create modules that are of the right granularity. This is a difficult task. We should then look for a shared set of design rules. While there are several module providers and listing agents, what is missing is the rest of the design rules. Until we have those, we will not get the results -- reuse and recombination. In the case of mashups, platform providers like Google and Yahoo! bake the design rules into the platform itself. This way, module providers should focus on creating the right set of modules and allow third parties to innovate on the platform. The platform provider gets to create and manage the design rules.