This tour overviews each chapter and outline the many topics discussed in Web Services: A Technical Introduction. Some of the terms mentioned here might be unfamiliar to you—they will be defined throughout the book. Every chapter ends with an Internet and Web Resources section, which lists Web sites that you can visit to learn more about the topics discussed in that chapter. Please visit www.deitel.com and www.prenhall.com/deitel, for updated information and additional learning resources.
Chapter 1—Introduction to Web Services
This chapter introduced Web services. We began by chronicling computing developments that make Web services possible, including object-oriented technology, distributed computing and Internet protocols. We described the emergence of Web services and explored their benefits, then introduced challenges to Web services adoption. We also discussed software vendors—including Microsoft, IBM, Sun and Hewlett Packard—that are cooperating to create open Web services standards and to ensure Web service interoperability. The chapter listed examples of existing Web services to illustrate the range of possible Web services capabilities. We also highlighted how certain industries—such as travel, financial services and manufacturing—are using Web services to integrate applications and improve B2B interactions. We concluded by touring the book.
Chapter 2—Web Services: A New Computing Paradigm
This chapter overviews technical and business topics relevant to Web services. We begin by defining Web services and discussing some of their distinguishing features, including modularity and platform independence. We introduce the Extensible Markup Language (XML), the underlying technology used in Web services, and explain how XML forms the basis for Web services standards such as SOAP, WSDL and UDDI. The chapter describes how organizations can use Web services and examines one Web service in a detailed case study. We discuss standards organizations and vendor consortia, such as the W3C and OASIS, and explore their roles in defining Web services specifications. We then overview key limitations of Web services, including performance, security and quality-of-service (QoS) concerns.
Chapter 3—Web Services Business Models
Web services offer opportunities for new businesses and lines of business. In this chapter, we divide Web services business models into two categories—businesses that offer services enabled by Web services standards and businesses that support the Web services industry. The first group is subdivided into service providers offering service-to-consumer (S2C), service-to-business (S2B) and service-to-employee (S2E) services. The second group—which facilitates Web services discovery and management—includes organizations that operate Web services registries, brokerages and networks. In discussing the stages of Web service development and deployment, we explain how service providers, brokers and requesters interact to complete Web services transactions. We also describe service-level agreements (SLAs) and explore possible payment methods.
Chapter 4—Web Services and Enterprise Computing
Companies can improve productivity and enhance various business processes through Web services. This chapter discusses how application developers and IT staffs can increase efficiency by incorporating Web services in enterprise systems. We explain the benefits of packaging business applications as services over the Internet, then describe how Web services can be used in specific enterprise software, such as portal, inventory, supply-chain-management and customer-relationship-management (CRM) applications. The chapter also contains case studies of how specific companies—including Microsoft, British Telecom, Alliance Airlines and Nordstrom—are using Web services to integrate systems and improve communication among departments, supply chains and partners.
Chapter 5—XML and Derivative Technologies
Understanding XML is essential to understanding Web services. This chapter begins by tracing the history of XML. We introduce the concept of markup languages, explaining how their standardization has increased interoperability among language platforms. We then overview a technology stack that illustrates the standards supporting Web services. We also discuss key XML-based technologies for describing and defining business processes. We explain the core components of ebXML, a technology that attempts to automate business processes. Other XML-derived technologies include Business Transaction Protocol (BTP), Business Process Modeling Language (BPML), Business Process Query Language (BPQL), Web Services Flow Language (WSFL) and Universal Business Language (UBL). The chapter concludes by introducing the basic structure of XML and defining key concepts such as tags, elements and namespaces.
Chapter 6—Understanding SOAP and WSDL
Simple Object Access Protocol (SOAP) and Web Services Description Language (WSDL) play crucial roles in Web services interactions. This chapter begins by chronicling the evolution of the SOAP and WSDL standards. We discuss the role of the SOAP messaging protocol in Web services architectures; topics include SOAP envelopes, Remote Procedure Calls (RPCs) and transport protocols. After providing an example of a SOAP message, we discuss interactions between SOAP senders and receivers. We also describe enhanced features of SOAP 1.2 and examine SOAP security issues. The chapter then introduces the WSDL standard, an XML vocabulary used to provide specific information about Web services, and provides an explanation of a sample WSDL document. We conclude by examining SOAP implementations by Apache, Microsoft and IBM.
Chapter 7—UDDI, Discovery and Web Services Registries
For Web services to achieve widespread adoption, a unified system must enable developers and applications to locate specific Web services. Several organizations have developed Web services registry systems, but the leading registry is based on the Universal Description, Discovery and Integration (UDDI) specification. This chapter details aspects of UDDI, including dynamic discovery, the public UDDI Business Registry (UBR) and private registries. We describe the UDDI information model, which is composed of business information, business service information, bind information, service specification information and publisher assertion information. We then discuss the UDDI publishing and querying APIs. We also explain key limitations of UDDI and introduce alternative discovery methods provided by ebXML and WS-Inspection.
Chapter 8—Web Services Platforms, Vendors and Strategies
Many companies are creating tools and applications for the Web services market. This chapter overviews various vendors and their Web services offerings. We begin by describing major vendors’ products and platforms that offer integrated support for Web services standards. These include BEA Systems’ various Web services products, the Hewlett-Packard HP Web Services Platform, the IBM WebSphere product line and Web Services Toolkit, Microsoft’s .NET Platform, the Oracle 9i Technology Suite and Sun Microsystems’s Sun ONE platform. We then consider mid-sized vendors’ Web services platforms, such as the IONA Orbix E2A™ Platform, SilverStream Software’s eXtend™ product line, The Mind Electric’s GLUE platform and Cape Clear’s CapeConnect and CapeStudio tools. We also highlight Web services products created by smaller vendors and start-ups.
Chapter 9—.NET Web Services: A Conceptual Overview
Microsoft’s .NET strategy embraces the Internet and Web as integral to the software-development and deployment processes. This chapter describes the .NET platform and its features for creating, publishing and consuming Web services. We highlight the benefits of implementing Web services in .NET, including .NET’s support of multiple programming languages and its tools for code reuse. We illustrate "drag-and-drop" programming using Visual Studio .NET and explain how ASP .NET can improve Web service performance, testing and security. The chapter then presents the basic structure of both .NET Web services and .NET Web service clients. We introduce ASMX files, code-behind files and proxy classes. We also overview the Global XML Web Services Architecture (GXA), a set of specifications that extend Web services standards. We explain how Web services are invoked from wireless devices, and we conclude by investigating the use of Web services with Microsoft BizTalk and Microsoft's .NET Enterprise Servers.
Chapter 10—Java Web Services: A Conceptual Overview
The Java 2 Platform provides rich support for Web services technologies. Companies, organizations and individuals in the Java software community have developed various Web services platforms that enable programmers to build, deploy and publish Web services. Virtually every major application-server vendor provides Web services support for Java 2 Enterprise Edition (J2EE) applications. This chapter discusses the extensive set of programming tools that Sun Microsystems provides to enable Java developers to build, access and integrate Web services. We overview Java technologies for Web services, including Java API for Remote Procedure Calls (JAX-RPC), Java API for XML Messaging (JAXM), SOAP with Attachments API for Java (SAAJ), Java API for XML Registries (JAXR) and various Java-based Web services deployment platforms. After reading this chapter, the reader will be familiar with the array of options for building Java-based Web services.
Chapter 11—Computer and Internet Security
Security breaches and network attacks can cause immense damage, costing organizations billions of dollars and affecting their productivity and even their credibility. To minimize these problems, it is essential that companies protect their data and ensure secure transactions. Effective security involves authenticating the identities of senders and receivers, verifying data integrity, ensuring that sensitive information remains private and proving that information was sent and properly received. This chapter begins by defining basic security terminology and exploring the history of cryptography. We examine and illustrate several cryptographic techniques used to encode information, including secret-key cryptography and public-key cryptography. We explore user authentication methods, such as digital signatures, digital certificates, digital watermarks and Kerberos. We also analyze the strengths and weaknesses of today's security standards—including Secure Sockets Layer (SSL), Internet Protocol Security (IPSec) and Virtual Private Networks (VPNs). Finally, we consider network security options, such as firewalls and intrusion-detection systems.
Chapter 12—Web Services Security
Web services can move transactions beyond corporate firewalls and enable outside entities to access corporate applications. This offers many benefits to organizations, but also increases the potential for security attacks and data corruption. This chapter addresses security—one of the main obstacles to widespread Web services adoption. We begin by describing why existing security technologies—such as HTTP and SSL—are insufficient to protect Web services transmissions. We then present several evolving Web services security specifications, including XML Signature and XML Encryption. These techniques authenticate messages and protect data during transmission, respectively. The XML Key Management Specification (XKMS), a specification for registering and distributing encryption keys, can be used with these techniques to authenticate each party in a transaction and to set up PKI (Public Key Infrastructure) for Web services. We also examine authorization and policy standards, such as the Security Assertion Markup Language (SAML) and the Extensible Access Control Markup Language (XACML). The chapter concludes by discussing Web services security with regard to firewalls and networks.
Appendix A—Introduction to XML Markup
Many Web services standards, such as SOAP, WSDL and UDDI, are XML-derived technologies. This appendix introduces the fundamentals of XML markup, including elements, attributes and character data. We explain the requirements for a well-formed document (i.e., a document that is syntactically correct) and provide a brief overview of parsers—programs that process XML documents and their data. We also introduce namespaces, which differentiate XML elements to avoid naming collisions. The appendix presents several complete XML documents, as well as an example of an XML Schema.
Appendix B—Implementing Web Services in Visual Basic .NET
This appendix introduces Web services programming with ASP .NET and Visual Basic .NET, building on concepts introduced in Chapter 9, .NET Web Services: A Conceptual Overview. The appendix shows complete working Visual Basic .NET LIVE-CODE™ examples; understanding these examples requires some familiarity with Visual Basic .NET and ASP .NET programming. The examples include Web services that manipulate integers up to 100 digits, simulate the Blackjack card game and implement a simple airline-reservation system. One particularly interesting example is our temperature server, a Web service that aggregates weather information for dozens of cities in the United States.
Appendix C—Implementing Web Services in Java
This appendix introduces how to build applications using the Java technologies discussed in Chapter 10, Java Web Services: A Conceptual Overview. We show complete working Java LIVE-CODE™ examples, so understanding these examples requires some familiarity with Java programming. Specifically, we show how to use the Java API for XML Remote Procedure Call (JAX-RPC) and the Java API for XML Messaging (JAXM)—technologies that Sun Microsystems provides for building Web services and the clients that invoke them. We show these technologies "at work," as we use these APIs and the Java programming language to develop two example programs. The first example is a JAX-RPC-based Web service that tallies votes for favorite programming languages. The second example is a JAXM-based business-to-business (B2B) architecture for purchasing and selling books. As we build these systems, we compare and contrast JAX-RPC and JAXM. We also include a Java-based client capable of invoking a Web service that provides stock information.
Appendix D—Best Web Services Web Sites
This appendix tours key Web services Web sites. First, we overview online resources provided by standards organizations and vendor consortia—such as the W3C, OASIS and the UDDI project. We direct readers to the most important information on these organizations’ sites, including technical specifications and downloads. We then tour software vendors’ Web sites that offer Web services articles and resources, including the IBM, Microsoft and Sun Microsystems sites. We also describe Web sites exclusively devoted to providing Web services articles and information, such as www.webservices.org and www.webservicesarchitect.com.