There's no doubt that the Web was a catalyst for a revolution that changed the lives of software developers and end users alike. Web services provide the foundation for another profound revolution in the way we build and use applications. It is up to developers like you and I to take this foundation and make the revolution happen. With this book, I aim to give you the information and insight you need to design and build next generation distributed interoperable applications with Web services.
My treatment of Web services in this book is divided in two sections: The first four chapters explain the architectural foundation on which Web services are built. The remaining eight chapters explain the tools you use to build Web services including the SOAP toolkit and the .NET framework.
This book is intended for experienced developers who have little or now experience with Web services. The book assumes you have programmed with VB 6, classic ASP, and VB .NET. It assumes you understand the fundamentals of Web application development and have a basic understanding of XML documents and the XML Document Object Model (XML DOM). This book is not for developers who have no .NET knowledge or experience.
A Live Book
The world of Web services is changing rapidly. There are new standards being defined every month and new implementations of those standards are being released on a hectic schedule. It is impossible for a traditional printed book to keep up with this rapid pace of change. When I set out to write this book, I decided to combine the print version with an online version that will be maintained and kept up-to-date with thestandards.
As an owner of a print copy of this book, you have access to the online version of this book including all the new content being added as standards emerge and tools change. Please make sure you take a look at what's new online.
Chapter 1: Introduction to Web Services
To start things off I explain what Web services are and the scenarios where they prove useful. I also show you how to create Web services with .NET and with the SOAP Toolkit. The idea is to give you a head start on creating and invoking Web services before digging into the details.
Chapter 2: XSD The Web Services Type System
This is the first of three chapters that cover the fundamentals of Web services. This chapter explains the syntax and usage of XML Schemas and shows examples of validating schemas using VB .NET and VB 6. the chapter also covers XML Serialization and shows examples of shaping the XML generated by the .NET XML Serializer.
Chapter 3: SOAP Invoking Web Services
Having understood schemas, this chapter explains SOAP, the Web services protocol. It explains how you can use SOAP for messaging as well as Remote Procedure Calls (RPC). It also shows you how to communicate error information to SOAP clients and the built-in mechanism for extending SOAP.
Chapter 4: WSDL Describing Web Services
This chapter completes the fundamentals by explaining the Web Services Description Languages, WSDL. The chapter begins with an overview then goes into the details of WSDL documents. It shows you practical examples of writing and reading WSDL documents. While it's unlikely that you'll need to create WSDL documents form scratch, it is likely that you'll need to read them and possibly modify them.
Chapter 5: The Microsoft SOAP Toolkit
Chapter 5 is the first of a series of chapters that cover the tools you use to build Web services. This entire chapter is dedicated to building Web services with the SOAP Toolkit. It shows you how to expose an existing COM component as a Web service using both the high-level and low-level APIs. It also explains how to handle SOAP headers and SOAP faults.
Chapter 6: .NET Web Services
After learning the SOAP Toolkit, this chapter explains creating and invoking Web services using the .NET framework. Beyond the basics, this chapter shows you the various features provided by the .NET framework such as output caching, data caching, and SOAP message shaping. The last section of this chapter dives into the details of Web service clients explaining how Web service proxies work and how you can customize them.
Chapter 7: SOAP Header and Fault
This chapter builds on what you learned in chapters 3 and 6 and shows you how to implement SOAP headers with the .NET framework. It shows you how to create SOAP headers that must be understood by the Web service and how to process headers on the service. It also shows you how to use SOAP Fault to communicate rich error information between service and client.
Chapter 8: Interface-Based Web Service Development
This chapter explains the process of interface-based Web services development which is necessary for large-scale projects and useful even for smaller projects. The chapter goes through the steps of defining and implementing an interface then covers implementing multiple interfaces on one Web service.
Chapter 9: Handling Data In .NET Web Services
When building real-world Web services, most of the problems you'll encounter will center on data. Whether you are sending or receiving data, you'll almost always need to decide the optimum format for this data and how to get it into this format. This chapter focuses on the mechanics of handling data in .NET Web services. The chapter is divided in sections covering ADO.NET DataSets, XML documents, custom objects and object arrays.
Chapter 10: Reusable Infrastructure with SOAP Extensions
.NET provides an architecture for performing custom request/response processing at the SOAP message level via SOAP extensions. This chapter explains how SOAP extensions work and shows you three example SOAP extensions including one for compressing/decompressing SOAP messages.
Chapter 11: UDDI: A Web Service
This chapter explains the Universal Description, Discovery and Integration standards and demonstrates scenarions where UDDI is useful. The objective of this chapter is to open your mind to design patterns and usage scenarios that leverage Web services registries. Such registries will become commonplace within the intranet with future versions of Windows server.
Chapter 12: Other SOAP Toolkits
Throughout the process of building and maintaining Web services you're likely to run into interoperability issues with other SOAP implementations. This chapter explains some of the more common SOAP toolkits including Apache SOAP and PocketSoap and shows you how they interoperate with .NET Web services.
Chapter 13: A Web Service Walkthrough
To wrap things up, chapter 13 walks through the steps of building a .NET Web service with .NET and VB 6 clients. The chapter also covers registering the service with UDDI.