You are previewing Web Services Essentials.
O'Reilly logo
Web Services Essentials

Book Description

As a developer new to Web Services, how do you make sense of this emerging framework so you can start writing your own services today? This concise book gives programmers both a concrete introduction and a handy reference to XML web services, first by explaining the foundations of this new breed of distributed services, and then by demonstrating quick ways to create services with open-source Java tools. Web Services make it possible for diverse applications to discover each other and exchange data seamlessly via the Internet. For instance, programs written in Java and running on Solaris can find and call code written in C# that run on Windows XP, or programs written in Perl that run on Linux, without any concern about the details of how that service is implemented. A common set of Web Services is at the core of Microsoft's new .NET strategy, Sun Microsystems's Sun One Platform, and the W3C's XML Protocol Activity Group. In this book, author Ethan Cerami explores four key emerging technologies:

  • XML Remote Procedure Calls (XML-RPC)

  • SOAP - The foundation for most commercial Web Services development

  • Universal Discovery, Description and Integration (UDDI)

  • Web Services Description Language (WSDL)

For each of these topics, Web Services Essentials provides a quick overview, Java tutorials with sample code, samples of the XML documents underlying the service, and explanations of freely-available Java APIs. Cerami also includes a guide to the current state of Web Services, pointers to open-source tools and a comprehensive glossary of terms. If you want to break through the Web Services hype and find useful information on these evolving technologies, look no further than Web Services Essentials.

Table of Contents

  1. Web Services Essentials
  2. SPECIAL OFFER: Upgrade this ebook with O’Reilly
  3. A Note Regarding Supplemental Files
  4. Preface
    1. Audience
    2. Organization
      1. Part I, Introduction to Web Services
      2. Part II, XML-RPC
      3. Part III, SOAP
      4. Part IV, WSDL
      5. Part V, UDDI
    3. Conventions Used in This Book
    4. Comments and Questions
    5. Acknowledgments
  5. I. Introduction to Web Services
    1. 1. Introduction
      1. Introduction to Web Services
        1. The Web Today: The Human-Centric Web
        2. Web Services: The Application-Centric Web
        3. The Web Services Vision: The Automated Web
        4. The Industry Landscape
      2. Web Service Architecture
        1. Web Service Roles
        2. Web Service Protocol Stack
        3. Architectural Snapshot: The IBM Web Services Browser
      3. XML Messaging
        1. XML-RPC
        2. SOAP
      4. Service Description: WSDL
      5. Service Discovery: UDDI
      6. Service Transport
        1. HTTP
        2. BEEP
      7. Security Considerations
        1. Confidentiality
        2. Authentication
        3. Network Security
      8. All Together Now
        1. Service Request Perspective
        2. Service Provider Perspective
      9. Standards and Coherence
  6. II. XML-RPC
    1. 2. XML-RPC Essentials
      1. XML-RPC Overview
      2. Why XML-RPC?
        1. Scenario 1: Glue Code with XML-RPC
        2. Scenario 2: Publishing Services with XML-RPC
      3. XML-RPC Technical Overview
        1. XML-RPC Data Model
        2. XML-RPC Request Structure
        3. XML-RPC Response Structure
      4. Developing with XML-RPC
      5. Beyond Simple Calls
  7. III. SOAP
    1. 3. SOAP Essentials
      1. SOAP 101
        1. The SOAP Request
        2. The SOAP Response
      2. The SOAP Message
        1. Envelope
        2. Header
        3. Body
        4. Fault
      3. SOAP Encoding
        1. Scalar Types
        2. Compound Types
        3. Literal Encoding
      4. SOAP via HTTP
      5. SOAP and the W3C
      6. SOAP Implementations
        1. SOAP Interoperability
    2. 4. Apache SOAP Quick Start
      1. Installing Apache SOAP
        1. Downloading the Required Java Files
        2. Setting Up the Tomcat CLASSPATH
        3. Configuring Tomcat
        4. Starting Tomcat
        5. Running the SOAP Administrator
      2. Hello, SOAP!
        1. Service Code
        2. Client Code
          1. The RPC Call object
          2. Setting parameters
          3. Invoking a remote service
          4. Checking for errors
          5. Extracting the return value
      3. Deploying SOAP Services
        1. Web-Based Administrator
        2. ServiceManagerClient Command-Line Tool
      4. The TcpTunnelGui Tool
      5. Web Resources
    3. 5. Programming Apache SOAP
      1. Working with Arrays
        1. Service Code
        2. Client Code
      2. Working with JavaBeans
        1. The ProductBean
        2. Service Code
        3. Client Code
      3. Working with Literal XML Documents
        1. Service Code
        2. Client Code
      4. Handling SOAP Faults
        1. Service Code
        2. Client Code
      5. Maintaining Session State
        1. Service Code
        2. Client Code
  8. IV. WSDL
    1. 6. WSDL Essentials
      1. The WSDL Specification
      2. Basic WSDL Example: HelloService.wsdl
        1. definitions
        2. message
        3. portType
        4. binding
          1. SOAP binding
        5. service
      3. WSDL Invocation Tools, Part I
        1. GLUE
        2. SOAP::Lite for Perl
        3. IBM Web Services Invocation Framework (WSIF)
      4. Basic WSDL Example: XMethods eBay Price Watcher Service
      5. WSDL Invocation Tools, Part II
        1. The GLUE Console
        2. SOAPClient.com
      6. Automatically Generating WSDL Files
        1. GLUE java2wsdl Tool
      7. XML Schema Data Typing
        1. Arrays
          1. Automatically invoking array services
        2. Complex Types
          1. Automatically invoking complex type services
  9. V. UDDI
    1. 7. UDDI Essentials
      1. Introduction to UDDI
        1. A Brief History of UDDI
      2. Why UDDI?
        1. Scenario 1: Publishing to UDDI
        2. Scenario 2: Searching UDDI
      3. UDDI Technical Overview
      4. UDDI Data Model
        1. The businessEntity
        2. The businessService
        3. The bindingTemplate
        4. The tModel
      5. Searching UDDI
        1. Web-Based Searching
        2. The UDDI Inquiry API
          1. The find_business function
          2. The get_businessDetail function
          3. The find_service function
          4. The get_serviceDetail function
          5. The get_bindingDetail function
          6. The get_tModelDetail function
          7. Error handling
      6. Publishing to UDDI
        1. Web-Based Publishing
          1. Security and user authentication
          2. Publishing a business entity
          3. Publishing a business service
          4. Publishing a tModel record
        2. The UDDI Publishing API
          1. Authenticating users
          2. Saving UDDI data
          3. Deleting/hiding UDDI data
      7. UDDI Implementations
        1. Java
        2. Microsoft COM
        3. Perl
      8. Web Resources
    2. 8. UDDI Inquiry API: Quick Reference
      1. The UDDI Inquiry API
        1. find_bindings
        2. find_business
        3. find_relatedBusinesses
        4. find_service
        5. find_tModel
        6. get_bindingDetail
        7. get_businessDetail
        8. get_businessDetailExt
        9. get_serviceDetail
        10. get_tModelDetail
      2. Find Qualifiers
    3. 9. UDDI 4J
      1. Getting Started
        1. Technical Overview
      2. Finding and Retrieving UDDI Data
        1. Searching for Businesses
          1. FindQualifiers
          2. IdentifierBag
          3. CategoryBag
        2. Retrieving a businessEntity Record
      3. Publishing UDDI Data
      4. UDDI4J Quick Reference API
        1. The com.ibm.uddi Package
          1. com.ibm.uddi.UDDIElement
          2. com.ibm.uddi.UDDIException
          3. com.ibm.uddi.VectorNodeList
        2. The com.ibm.uddi.client Package
          1. com.ibm.uddi.client.UDDIProxy
        3. The com.ibm.uddi.datatype Package
          1. com.ibm.uddi.datatype.Description
          2. com.ibm.uddi.datatype.Name
          3. com.ibm.uddi.datatype.OverviewDoc
          4. com.ibm.uddi.datatype.OverviewURL
        4. The com.ibm.uddi.datatype.binding Package
          1. com.ibm.uddi.datatype.binding.AccessPoint
          2. com.ibm.uddi.datatype.binding.BindingTemplate
          3. com.ibm.uddi.datatype.binding.BindingTemplates
          4. com.ibm.uddi.datatype.binding.HostingRedirector
          5. com.ibm.uddi.datatype.binding.InstanceDetails
          6. com.ibm.uddi.datatype.binding.InstanceParms
          7. com.ibm.uddi.datatype.binding.TModelInstanceDetails
          8. com.ibm.uddi.datatype.binding.TModelInstanceInfo
        5. The com.ibm.uddi.datatype.business Package
          1. com.ibm.uddi.datatype.business.Address
          2. com.ibm.uddi.datatype.business.AddressLine
          3. com.ibm.uddi.datatype.business.BusinessEntity
          4. com.ibm.uddi.datatype.business.Contact
          5. com.ibm.uddi.datatype.business.Contacts
          6. com.ibm.uddi.datatype.business.Email
          7. com.ibm.uddi.datatype.business.PersonName
          8. com.ibm.uddi.datatype.business.Phone
        6. The com.ibm.uddi.datatype.service Package
          1. com.ibm.uddi.datatype.service.BusinessService
          2. com.ibm.uddi.datatype.service.BusinessServices
        7. The com.ibm.uddi.datatype.tmodel Package
          1. com.ibm.uddi.datatype.tmodel.TModel
        8. The com.ibm.uddi.response Package
          1. com.ibm.uddi.response.AuthToken
          2. com.ibm.uddi.response.BindingDetail
          3. com.ibm.uddi.response.BusinessDetail
          4. com.ibm.uddi.response.BusinessDetailExt
          5. com.ibm.uddi.response.BusinessEntityExt
          6. com.ibm.uddi.response.BusinessInfo
          7. com.ibm.uddi.response.BusinessInfos
          8. com.ibm.uddi.response.BusinessList
          9. com.ibm.uddi.response.DispositionReport
          10. com.ibm.uddi.response.ErrInfo
          11. com.ibm.uddi.response.RegisteredInfo
          12. com.ibm.uddi.response.Result
          13. com.ibm.uddi.response.ServiceDetail
          14. com.ibm.uddi.response.ServiceInfo
          15. com.ibm.uddi.response.ServiceInfos
          16. com.ibm.uddi.response.ServiceList
          17. com.ibm.uddi.response.TModelDetail
          18. com.ibm.uddi.response.TModelInfo
          19. com.ibm.uddi.response.TModelInfos
          20. com.ibm.uddi.response.TModelList
        9. The com.ibm.uddi.util Package
          1. com.ibm.uddi.util.AuthInfo
          2. com.ibm.uddi.util.BindingKey
          3. com.ibm.uddi.util.BusinessKey
          4. com.ibm.uddi.util.CategoryBag
          5. com.ibm.uddi.util.DiscoveryURL
          6. com.ibm.uddi.util.DiscoveryURLs
          7. com.ibm.uddi.util.FindQualifier
          8. com.ibm.uddi.util.FindQualifiers
          9. com.ibm.uddi.util.IdentifierBag
          10. com.ibm.uddi.util.KeyedReference
          11. com.ibm.uddi.util.KeyValue
          12. com.ibm.uddi.util.ServiceKey
          13. com.ibm.uddi.util.TModelBag
          14. com.ibm.uddi.util.TModelKey
          15. com.ibm.uddi.util.UploadRegister
  10. Glossary
  11. Index
  12. About the Author
  13. Colophon
  14. SPECIAL OFFER: Upgrade this ebook with O’Reilly