Click here for full text:
Making Web Services that Work
Keyword(s): web services; deployment; development process; SOAP
Abstract: This paper explores the techniques and technology needed to make building production-quality web services a manageable problem. It approaches this problem in both software process and in the specifics of some areas of a Web Service - such as API, security and session management. The software process is more foundational: this paper argues that the traditional waterfall model of deployment is not appropriate for Web Services. In these services, integration with external callers is one of the key problems, yet this only surfaces on live systems. Debugging on, and rapid updates of, the live system are the only way to address interoperability and other problems that surface on the production service. Furthermore, as management of a running system is the main ongoing cost of a service, the needs of operations cannot be left as an afterthought to the system design. We propose the incorporation of the deployment process into the iterative development process through the inclusion of operations use cases, tests and defect tracking into the normal software cycle. When combined with a fully automated deployment mechanism, the foundations for a rapid web service development process are in place. On the technical aspects of Web Service development, there are core issues related to security, interoperability, scalability and robust design that need to be considered from the outset. We explore these topics using the experience gained from encountering many of the issues when developing production systems. We then go on to explore how the component models of the future could adapt to better suit server-side and Web Service development. We argue that uniform APIs for standard services- logging, configuration, management, testing- permit reusable components to be used in a production server environment. We discuss how neither of the two platforms competing most vociferously to be the foundation upon which developers should build their services, Enterprise Java and Microsoft .NET, have room for improvement in this area, and propose some strategies for improvement. Finally, this paper explores the concept that individual Web Services will become independent components within the emerging Web Service Federation: the collection of independent systems interworking using common Web Service protocols. As these protocols evolve they may become viable to connect programs and computers inside an individual Web Service, although this is only partially viable today.
Back to Index