You are previewing .NET Web Services: Architecture and Implementation.
O'Reilly logo
.NET Web Services: Architecture and Implementation

Book Description

Praise for .NET Web Services

“Keith Ballinger has been ‘Mr. Web Services’ at Microsoft for as long as there were Web services. Anyone doing work on the Microsoft Web Services platform would do themselves a favor by reading this book, as Keith’s insights are unique.”

         —Bob Beauchemin, DevelopMentor

“This book is a very good introduction to Web services, providing enough specific information for a person to fully understand the principles and implementation issues of Web services . . . Ballinger clearly outlines the fundamental architectural topics that any organization looking to implement XML Web services should consider.”

         —Colin Bowern, Consultant, Microsoft Corporation

“This book provides information about all principal components of Webservices: transport protocol, interface definition and services discovery mechanisms, security and messaging infrastructure, as well as underlying technologies (XML, TCP/IP, HTTP). Description of each subject is comprehensive and complete; examples provide good illustration from the content.”

         —Max Loukianov, Solomio Corp.

.NET Web Services is the authoritative guide to designing and architecting better Web services using Microsoft technologies. Written by Keith Ballinger, a Program Manager for XML Web Services at Microsoft, this book explains what Web services are, why they exist, and how they work in .NET. Readers will gain a thorough understanding of the technologies that allows them to take full advantage of .NET.

The book opens with an introduction to Web services and Web services standards. It then explores .NET technologies and examines how the .NET Framework gives developers the tools they need to build Web service applications. The core of the book focuses on the key specifications that make up the Web services architecture, from HTTP to SOAP to WS-Security. .NET Web Services concludes with the author's expert advice on architecting and designing Web service applications.

Topics covered include:

  • The features and pitfalls of Web services

  • Web services standards

  • Creating Web Services with ASP.NET

  • Creating Web service clients

  • XML serialization with .NET

  • Extending Web services

  • Transport protocols for Web services

  • XML and XML Schemas

  • SOAP

  • Describing Web services

  • Discovering Web services

  • Messaging with Web services

  • Securing Web services

  • Advanced messaging

Best practices are illustrated throughout with full working examples as well as code samples using C# and ASP.NET Web services. A companion Web site at includes all sample code from the book.

Books in the Microsoft .NET Development Series are written and reviewed by the principal authorities and pioneering developers of the Microsoft .NET technologies, including the Microsoft .NET development team and DevelopMentor. Books in the Microsoft .NET Development Series focus on the design, architecture, and implementation of the Microsoft .NET initiative to empower developers and students everywhere with the knowledge they need to thrive in the Microsoft .NET revolution.

Table of Contents

  1. Copyright
  2. Praise for .NET Web Services
  3. Microsoft .NET Development Series
  4. Titles in the Series
  5. Foreword
  6. Preface
  7. Acknowledgments
  8. 1. Introducing Web Services
    1. The Problem: Sharing Data
    2. The Solution: Distributed Application Development
    3. The Web Architecture
      1. Defining Web Services
      2. The Significance of Internet Standards
      3. The Significance of WSDL
      4. The Significance of Interoperability
      5. The Significance of Loose Coupling
    4. Modular Design
    5. Message Passing
    6. Error Handling
    7. The Web Service Architecture
    8. The Baseline Specifications of Web Service Architecture
    9. Summary
  9. 2. XML Web Services Standards
    1. The Basics
      1. HTTP
      2. XML and XML Schema
    2. Standards for XML Web Services
      1. The Protocol: SOAP
        1. Passing Documents with SOAP
        2. Remote Method Calls with SOAP
      2. Describing Services with WSDL
    3. Discovering Services with UDDI
      1. Other Protocols
    4. Summary
  10. 3. Creating Web Services with ASP.NET
    1. Roadmap to ASP.NET Web Services
    2. Building Servers
    3. Anatomy of a Web Service
      1. Building Document-Literal Services
      2. Building Document-Encoded Services
      3. Building RPC-Encoded Services
      4. Building One-Way Services
      5. Controlling Routing
    4. Using SOAP Bindings
    5. Implementing a Server Asynchronously
      1. Using SOAP Headers
    6. Returning Errors
    7. Summary
  11. 4. Creating Web Service Clients
    1. Creating Clients with the .NET Framework SDK
      1. Discovery with disco.exe
      2. WSDL Consumption
    2. Creating Clients with Visual Studio .NET
    3. Creating Web Service Clients Manually
      1. Building Document-Literal Clients
      2. Building Document-Encoded Clients
      3. Building RPC-Encoded Clients
      4. Building One-Way Clients
      5. Building a Client That Uses Asynchronous Methods
    4. Handling Errors and SOAP Faults
    5. Extending and Customizing a Client
    6. Summary
  12. 5. XML Serialization with .NET
    1. Overview
      1. Only Classes with a Public, Default Constructor Will Be Serialized
      2. Only Public Fields and Properties Will Be Serialized
      3. Read-Only Fields and Properties Will Not Be Serialized
      4. Methods and Other Type Information Will Not Be Serialized
    2. Writing and Reading XML
      1. Serializing Encoded XML
    3. Customizing XML Serialization
      1. The Namespace of Serialized XML Will Be by Default
      2. Properties and Fields Will Remain in the Same Namespace
      3. Properties and Fields Will Be Serialized as Elements
      4. Arrays with XML Serialization
      5. Serializing Untyped XML
    4. Creating Classes from Schemas
    5. XML Serialization and Web Services
    6. Summary
  13. 6. Extending Web Services
    1. Soap Extensions
    2. Description Formatters
    3. Customizing Transport Information
      1. Setting Exposed HTTP Properties
      2. Overriding Proxy Class Behavior
    4. HTTP Modules
    5. The Web Services Enhancements
    6. Summary
  14. 7. Transport Protocols for Web Services
    1. TCP Communication
    2. Unreliable Messages with UDP
    3. SOAP in E-mail: SMTP
    4. The Web's Transport: HTTP
      1. The WebClient Class
      2. The WebRequest Classes
    5. Summary
  15. 8. Data and Format: XML and XML Schemas
    1. The Meta-Language
    2. XML Documents and Namespaces
    3. Programming with XML and Namespaces
      1. Streaming XML Processing
        1. Reading Streams
        2. Writing Streams
        3. A Sample Stream-Based Application
      2. DOM-Based Programming
    4. Describing XML with Schemas
      1. Data Types with XML Schema
      2. Describing the XML Shape
    5. Programming with Schemas
      1. Programming Schema-Based XML
      2. Manipulating XML Schema Documents
    6. Summary
  16. 9. The Messaging Protocol: SOAP
    1. Overview of the SOAP Protocol
      1. Enveloping with SOAP
        1. The SOAP Body
        2. The SOAP Header
        3. Actors
        4. The mustUnderstand Attribute
      2. Errors with SOAP
      3. Remote Method Calls with SOAP
        1. Encoded XML
        2. Remote Method Calls
        3. The Encoding Style Attribute
      4. SOAP and HTTP
    2. Using SOAP to Send Messages
    3. SOAP Headers and Asynchronous Messaging
    4. Summary
  17. 10. Describing Web Services
    1. Requirements for Describing Web Services
    2. The Web Services Description Language
      1. Extensibility
      2. Abstraction
      3. Structure
    3. Anatomy of WSDL
      1. Abstract Message Operations
      2. Concrete Operation Information
      3. Types
      4. Messages
      5. Port Types and Operations
      6. Bindings
      7. Services and Ports
    4. Writing WSDL
    5. Reading WSDL Documents with .NET
    6. Extending WSDL
    7. Web Service Policy
    8. Summary
  18. 11. Discovering Web Services
    1. Universal Discovery with UDDI
      1. The Anatomy of UDDI
        1. businessEntity
        2. businessService
        3. tModel
      2. Programmer's API
        1. Inquiry
      3. WSDL and UDDI
    2. WS-Inspection
      1. Anatomy of WS-Inspection
    3. Ad-Hoc Discovery
    4. Summary
  19. 12. Messaging with Web Services: WS-Routing, WS-Referral, and DIME
    1. Logical Names
    2. Routing Messages
      1. Message Paths with WS-Routing
      2. Building WS-Routing Applications
    3. Dynamic Configuration of SOAP Routers
    4. DIME
      1. Anatomy of a DIME Message
      2. Using DIME with SOAP
    5. Summary
  20. 13. Securing Web Services with WS-Security
    1. Security Technologies and Standards
      1. Authentication
      2. Confidentiality
        1. Private Key Encryption
        2. Public Key Encryption
        3. XML Encryption
      3. Integrity
        1. XML Signature
    2. Web Service Security Protocols
      1. Definitions
        1. Security Token
        2. Claim
        3. Subject
        4. Policy
      2. WS-Security
        1. Security Tokens
        2. Integrity and Encryption
    3. Summary
  21. 14. Advanced Messaging:Reliability and Sessions
    1. Sessions
      1. HTTP Sessions
      2. Message-Level Sessions
    2. Message Reliability
    3. Dialogues and Monologues
    4. Summary
  22. 15. Designing Web Services
    1. Performance
      1. Writing Performance-Oriented Code with .NET
      2. Message Size and Network Latency
      3. How Important Is Performance?
    2. Interoperability
      1. Audience-Centered Design
      2. Specific SOAP Issues
        1. Specific WSDL Issues
        2. WS-I Profiles
    3. Versioning
      1. Types of Versioning
      2. Loosely Coupled Architecture and Implementation Versioning
      3. Namespaces and Versioning
    4. Using Business Logic
    5. Caching
    6. Summary
    7. Final Thoughts