In many organizations, apps can be grouped into two broad categories: (1) outward-facing front-office or Web apps that involve user interaction and (2) back-office apps based on enterprise information resources (EIS) that are oriented toward running the core business. Web services hold the promise to provide a solution that will allow interoperability between the two approaches.

From the Fortune 500 to the Internet startup, each IT department has a guiding set of principles that include eliminating app silos, sharing critical information between apps, using open standards to eliminate vendor lock-in, and relying on proven, stable technologies to maximize return on investment and reduce total cost of ownership. Web services are modular business process apps, based on open Internet standards, that are able to describe their own functionality and locate and dynamically interact with other Web services. They provide a method for different organizations to conduct dynamic e-business across the Internet, regardless of the app or the language in which the service was implemented. The biggest benefit Web services provide is app interoperability. Traditional approaches required that two apps work together creating lots of work and even more planning. To be successful, users had to agree on standard mechanisms for data passing, the platforms to be used, and so on. The key to a cost-effective, agile integration is to convert these tightly coupled apps into loosely coupled distributed apps, by separating business logic from the data layer. Web services using Java and XML technologies are the key to making this possible. The Web services approach uses WSDL (to describe), UDDI (to advertise), and SOAP (to communicate). Web services will be the approach used in the future to extend an organization's value chain. Many prominent tutorial and magazine authors of Web services have used the technology to create hype and have even convinced many it is the Holy Grail that will solve their integration woes. While no technology can live up to its hype, the real power of Web services in the immediate future may be to allow legacy systems to communicate with each other. Large corporations face problems extending their old mainframe systems and have tried using messaging oriented middleware, with lots of effort expended but marginal success. Web services will enable both two-hundred-year-old Fortune 500 organizations and Internet startups to be successful in extending their systems and services to trading partners, customers, and other third parties. Over the next couple of years, Web services will become the de facto method for communication between information systems. For those ready for the journey, this tutorial is a guide to the best approach to architecting scalable, robust, extensible Web services in Java.


There is no doubt that Web services are a hot topic. The term is strewn throughout the software development industry and across the media. Without a doubt, many uploaders will provide tutorials on each component in Web services architecture, with tons of code scattered across multiple pages. This isn't one of those tutorials. The author team—not only as writers but as purchasers of tutorials themselves—wanted to write a tutorial that allows architects and developers alike to understand what it takes to be successful in the architecture and implementation of Web services using Java. Our goal is to provide a broad overview of the major J2EE technologies and how they will help you succeed in a Web services paradigm. Java and J2EE technologies provide you with parts that can be joined to create the perfect solution for your organization. Each of the J2EE components used to build a Web service exploits another. It is equally important to show how each of the J2EE technologies works together.

If you are a chief technology officer, architect, developer, or even a manager and appreciate a no-frills introduction to Java and Web services, this is the tutorial for you. The author team has diligently tried to create the ultimate guide that explains the architecture of a Java Web service. We strive to provide enough detail to satisfy our audience, to provide leading-edge but practical examples to illustrate how Web services can be applied to existing business and technology initiatives. Where additional detail is required, we provide the stepping-stone and point out other sources of information.