Where Web services once provided fine-grained tactical solutions, the focus going forward is on more solutions-oriented and strategic services that will add even more value to mashups, platform-as-a-service applications, SaaS, and even Internet-connected corporate applications. The question is, what will those services look like?
The temptation is to take existing applications and just "expose" certain behaviors and information flows as services. While that works in theory, the practical reality is that services have different design patterns than simple application interfaces, and useful services are both designed and built as, well, services. Indeed, services should not only provide critical business functionality but support complete heterogeneity.
If design constraints are followed, it's time to consider just what a new generation Web service will be. I'll first be clear about the parameters:
First, the service needs to provide a solution, not just tactical information or behavior. The service should provide higher value functions such as portfolio risk analytics. The idea is that more strategic and solutions-oriented services will provide more value within mashups, SaaS applications, PaaS applications, and enterprise applications that need to add that solution as part of their business process.
Second, but stills considering the first point, the service should also provide design patterns around key vertical process. Be it logistics management for the manufacturing vertical, or tax management for the retail vertical, services should address specific solutions, which typically means they are focused on a specific vertical. We're moving into a world where services are more customized for your business processes, which are typically aligned to the industry you're in. Thus, we're creating complete solutions, or augmenting existing applications using a huge pallet of vertical-specific services that are completed more to purpose.
Finally, the ability to alter some behavior of the service for a better fit. In the world of object-oriented design and development we've been able to leverage approaches where objects are customizable using the mechanism of inheritance. Although inheritance is not typically a strong point of Web services (not supported, really), there are facilities to alter behavior based upon the container that leverages the services. Services typically follow the 80/20 rule when considering function, meaning that while 80 percent of the functionality you're looking for within a service is there, typically, 20 percent of the functionality is not needed or needs to change. While most consider services as an all-or-nothing proposition, that really does not need to be the case. Thus, you increase the value of the service, and the number of times the service will be reused, inter- and intra-company.