As organizations transition from researching Web services technologies and building internal prototypes to early-adopter deployments, and then eventually to mainstream adoption of Web services, the key differentiator and requirement is that these applications and systems are appropriate for "real world" deployment and usage. Some of the early prototypes built using Web services were in many ways toys. All of the Web services and client applications run on a single machine, hosted by the same application server, in a fully controlled environment. Many of these services and applications that once worked as prototype systems will no doubt break some immediately, while others may take more time to break (which is much worse).
The next few years will see Web services and applications become hardened and ready for "real world" deployment. The real world is indeed a cold and hard place. Web services run remotely, sometimes go down and become unavailable, evolve into multiple versions, as well as encounter variances in network bandwidth and quality. Moreover, politics and competitive issues between organizations will result in unexpected outages and behaviors along critical dependencies within applications.
Already we see many standards bodies that have been convened to address these and other issues. Some of the technologies that are being developed to address these needs will eventually be automatic, transparent to developers as existing infrastructure and tools, such as middleware and IDEs, and incorporate the technologies. Nonetheless, architects and developers will need to have a keen understanding of these issues and technologies to develop enterprise-class Web services and applications.
In this book, we look at the Web services platform where it is now and where it is going with an eye toward developing robust enterprise Web services and applications. In the first of the three sections of this book, we begin by describing the core technologies that make up the Web services platform. These are XML, SOAP, WSDL, and UDDI. This platform provides a distributed computing environment based on standard interfaces and protocols, but it does not implement all of the capabilities necessary for implementing enterprise systems.
In the second part of this book, we look at some of the standards and emerging technologies that, once layered on top of the vanilla Web services platform, address some of the critical requirements of enterprise systems. These technologies include support for transactions, security and authentication, conversations, workflow, quality of service, mobile and wireless, services and systems management, as well as interactive applications and Web portals.
In the third part of the book, with both the vanilla Web services platform as well as some of the critical advanced technologies and standards under our belt, we take an in-depth look and provide step-by-step instructions for building an enterprise application using Web services. Addressing one of the biggest pain points in business processes today, we develop an enterprise procurement application that ties together the inventory and ordering Web services of multiple suppliers and facilitates the procurement process. We first develop the entire application using only the vanilla Web services platform (as described in the first part of the book). After identifying the shortcomings of this implementation based only on the vanilla platform, we add to and expand on the application using the advanced standards and technologies described in the second part of the book.
We conclude this book by summarizing and highlighting some of the key points to remember when developing enterprise Web services and applications.