The heterogeneous nature of software and computing platforms leads to a chaotic and fragile web of code in order to make applications appear seamless to the user while sharing data beneath the surface. Further, the salary that programmers demand to rein in the chaos can tax any company and technology department. Even after an application integration job is complete, the resulting system is often unintelligible and difficult to maintain.
Web Services create a common architecture and implementation for exposing the application functionality that helps programmers integrate systems and create seamless business processes that span departments, companies, and computing platforms. Web Services are attractive because programmers do not need in-depth knowledge of every computing platform that will participate in a business process. Instead, programmers need to understand Web Services and their own programming environment.
As you probably have seen with the object-oriented programming paradigm, the Java 2 Standard Edition (J2SE) computing platform, and even the Java 2 Enterprise Edition (J2EE) computing platform, offering a language, an architecture, and a platform to solve problems is not enough. A platform requires an additional layer of organization, known as a pattern , to help realize its full potential. Patterns help you see how to address specific problems with the tools that are available from a computing platform. Web Services are no different from any other computing platform in that the documentation of solutions can help you use the platform better and more quickly. This book provides generic patterns and implementations to illustrate how to use the Web Service platform.
It is important to realize where Web Services fit into a complete solution for a business problem. For example, Web Services are not responsible for the behavior of a service; instead, they focus on how to access the behavior of a service. This distinction is critical when studying the category of solutions that WebServices enable. Despite a clear separation between the responsibilities of Web Services and those of a computing platform such as J2SE, there is often much overlap in the patterns that programmers leverage when concentrating on the different platforms.
You will also use new patterns when you embrace the Web Service platform to its fullest potential. The separation of communication from behavior ”as well as the separation of service definition and location from the implementation of a service's behavior ”enables a new generation of dynamic system behaviors.
By the time you have completed this book, you should have a clear understanding of the following:
Business drivers that lead to solutions built with the Web Service platform
Several common patterns and how to implement them using the Web Service platform
Several new patterns to help you leverage Web Services
In addition to a catalog of patterns that you can leverage after completing the book, it is my intention that you have gained hands-on experience with the patterns through a case study that binds the patterns together. My approach to doing hands-on work is to present a simple case study enabled with open-source software, such as Apache Tomcat, Apache Axis, and MySQL. Appendix A contains a list of software required to run the examples. The samples themselves are open source and are available at SourceForge (http:// sourceforge .net/projects/websvcdsnptn). I hope you will have a good understanding of the open -source community that is backing up Web Services by the time you finish the book.