HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
The ultimate Microsoft insider explains how to get the most out of .NET's powerful tools for building Web services
° Ballinger is a key figure on Microsoft's .NET Framework team, and is widely known
° Learn not just how to use .NET to build Web services, but why .NET was built and works the way it does
° Part of the Microsoft .NET Development Series
Most books on Web Services have focused on specific technologies, and how to use those class libraries to build services and clients. Some have attempted to give an overview of SOAP and WSDL and other related technologies. This book will address the issue of why Web services exist, and how to create them using Microsoft .NET. As Program Manager for Web Services in Microsoft's .NET Framework group no one is in a better position than Keith to explain why .NET's web services tools were set up the way they are, and how to get the most out of them. Once you understand how implementation and architecture of Web services work in .NET, you'll be better able to take full advantage of .NET's powerful tools. The book features a lot of code and many working examples.
Critical Success Factors for Web Services
Click below for Web Resources related to this title:
Author's Web Site
Click below for Sample Chapter(s) related to this title:
Sample
Chapter 1
Foreword.
Preface.
Acknowledgments.
1. Introducing Web Services.
The Problem: Sharing Data.
The Solution: Distributed Application Development.
The Web Architecture.
Defining Web Services.
The Significance of Internet Standards.
The Significance of WSDL.
The Significance of Interoperability.
The Significance of Loose Coupling.
Modular Design.
Message Passing.
Error Handling.
The Web Service Architecture.
The Baseline Specifications of Web Service Architecture.
Summary.
The Basics.
HTTP.
XML and XML Schema.
Standards for XMLWeb Services.
The Protocol: SOAP.
Describing Services with WSDL.
Discovering Services with UDDI.
Other Protocols.
Summary.
Roadmap to ASP.NET Web Services.
Building Servers.
Anatomy of a Web Service.
Building Document-Literal Services.
Building Document-Encoded Services.
Building RPC-Encoded Services.
Building One-Way Services.
Controlling Routing.
Using SOAP Bindings.
Implementing a Server Asynchronously.
Using SOAP Headers.
Returning Errors.
Summary.
Creating Clients with the .NET Framework SDK.
Discovery with disco.exe.
WSDL Consumption.
Creating Clients with Visual Studio .NET.
Creating Web Service Clients Manually.
Building Document-Literal Clients.
Building Document-Encoded Clients.
Building RPC-Encoded Clients.
Building One-Way Clients.
Building a Client That Includes Asynchronous Methods.
Handling Errors and SOAP Faults.
Extending and Customizing a Client.
Summary.
Overview.
Only Classes with a Public, Default Constructor Will Be Serialized.
Only Public Fields and Properties Will Be Serialized.
Read-Only Fields and Properties Will Not Be Serialized.
Methods and Other Type Information Will Not Be Serialized.
Writing and Reading XML.
Serializing Encoded XML.
Customizing XML Serialization.
The Namespace of Serialized XMLWill Be http://tempuri.org by Default.
Properties and Fields Will Remain in the Same Namespace.
Properties and Fields Will Be Serialized as Elements.
Arrays with XML Serialization.
Serializing Untyped XML.
Creating Classes from Schemas.
XML Serialization and Web Services.
Summary.
Soap Extensions.
Description Formatters.
Customizing Transport Information.
Setting Exposed HTTP Properties.
Overriding Proxy Class Behavior.
HTTP Modules.
The Web Services Enhancements for Microsoft .NET.
Summary.
TCP Communication.
Unreliable Messages with UDP.
SOAP in E-mail: SMTP.
The Web's Transport: HTTP.
The WebClient Class.
The WebRequest Classes.
Summary.
The Meta-Language.
XML Documents and Namespaces.
Programming with XML and Namespaces.
Streaming XML Processing.
DOM-Based Programming.
Describing XML with Schemas.
Data Types with XML Schema.
Describing the XML Shape.
Programming with Schemas.
Programming Schema-Based XML.
Manipulating XML Schema Documents.
Summary.
Overview of the SOAP Protocol.
Enveloping with SOAP.
Errors with SOAP.
Remote Method Calls with SOAP.
SOAP and HTTP.
Using SOAP to Send Messages.
SOAP Headers and Asynchronous Messaging
Summary.
Requirements for Describing Web Services.
The Web Services Description Language.
Extensibility.
Abstraction.
Structure.
Anatomy of WSDL.
Abstract Message Operations.
Concrete Operation Information.
Types.
Messages.
Port Types and Operations.
Bindings.
Services and Ports.
Writing WSDL.
Reading WSDL Documents with .NET.
Extending WSDL.
Web Service Policy.
Summary.
Universal Discovery with UDDI.
The Anatomy of UDDI.
Programmer's API.
WSDL and UDDI.
WS-Inspection.
Anatomy of WS-Inspection.
Ad-Hoc Discovery.
Summary.
Logical Names.
Routing Messages.
Message Paths with WS-Routing.
Building WS-Routing Applications.
Dynamic Configuration of SOAP Routers.
DIME.
Anatomy of a DIME Message.
Using DIME with SOAP.
Summary.
Security Technologies and Standards.
Authentication.
Confidentiality.
Integrity.
Web Service Security Protocols.
Definitions.
WS-Security.
Summary.
Sessions.
HTTP Sessions.
Message-Level Sessions.
Message Reliability.
Dialogues and Monologues.
Summary.
Performance.
Writing Performance-Oriented Code with .NET.
Message Size and Network Latency.
How Important Is Performance?
Interoperability.
Audience-Centered Design.
Specific SOAP Issues.
Versioning.
Types of Versioning.
Loosely Coupled Architecture and Implementation Versioning.
Namespaces and Versioning.
Using Business Logic.
Caching.
Summary.
Final Thoughts.
This book is the result of several years of work. Not just my own personal work (although writing this book has resulted in some late nights), but the hard work and many man years of effort by Microsoft's .NET Framework and XML messaging teams. Several other companies and talented individuals, such as Sam Ruby from IBM have also been critical in taking this technology to the masses.
But it begs the question: why have so many people, and so much money, been poured into this technology? Why is Web services perceived by Microsoft and many others as a huge, and potentially industry changing pieces of work? This book can't possibly give a complete answer. But, I've tried to deliver to you the most important pieces of information I can about Web services, specifically those built with .NET. By doing do, my hope is that you too can see how wonderful this technology is.
Most books on Web Services have focused on specific technologies, and how to use those class libraries to build services and clients. Some of the better ones have attempted to give an overview of SOAP and WSDL and other technologies. What are Web Services? Why do they exist?
I can't answer those questions completely, but I can help people better understand the technology in general, and thereby design and architect better Web Services. I've tried to present the material in a way that makes obvious the reasons for their existence.
Of course, as the Program Manager for Web Services built with Microsoft's .NET Framework, I feel compelled to show off a little. I truly feel that I have helped build the best Web Services technology around. And I think it appropriate to take you through the major features of this technology. Most of the code samples will also use C# and ASP.NET Web Services.
I've tried to design this book to be read front to back, or randomly. Each chapter builds on previous chapters, however most chapters can be read stand-alone and still be useful.
This book consists of 15 chapters. Chapters 1 and 2 explain what Web services are, and the standards that make up the Web services world. Chapter 3 through 6 are an in depth view of how the .NET Framework allows developers to build Web service applications. Chapters 7 through 14 take a step back and drill into the specifications (from HTTP to SOAP to WS-Security) that make up the Web services architecture. Finally, Chapter 15 delivers a few words of advice about architecting and designing Web services applications.
Capitalism is the political system based on the recognition of individual rights, including property rights. It is the most productive political system in history. Of all modern industries, the computer business most vividly reflects the benefits of capitalism, and on average it has enjoyed free capital and employment flows and comparatively little regulation. This has made it a home for entrepreneurs and others who think out of the box—innovators in products, marketing, finance, distribution, and corporate organization. The computer business never stands still, and it shatters all conservative estimates of its possibilities.
In 1943, Thomas Watson, then chairman of IBM, said famously, "I think there is a market for maybe five computers on the world market." This made sense, if one's sights were set on the computers of that era: so large and expensive to buy and maintain that only the biggest institutions with the most urgent needs could justify them.
Undaunted, inventors created a stream of new technologies, while entrepreneurs and capitalists built new businesses around them. By the 1960s, led by Remington Rand and others and eventually including IBM, computers became small and cheap enough that businesses could afford to buy a "mainframe" computer for centralized bookkeeping. In the 1970s, inventions in semiconductor technology resulted in the creation of minicomputers. Companies such as DEC decisively broke both the mainframe prices and the centralized model, thereby enabling departments and small groups to own a computer. Then came the integrated circuit, venture capital, Intel, Microsoft, and the personal computer revolution of the 1980s. Forevermore, most computers would be small, inexpensive, and dedicated to individual use. During the 1990s, deregulation unlocked prior investment and innovation in telecommunications. Communication became integrated into the computing fabric, as rapidly dropping bandwidth costs enabled the central computers to take on a new role of serving constellations of personal computers.
Browser-based computing, typified by the World Wide Web, was hugely successful, yet it addressed only one style of computing, namely, remote computers interacting immediately with humans. It did not exploit the possibilities of widely decentralized, personal computing. The inventions that created the World Wide Web—inexpensive computers, cheap communications, extensible protocol formats, and protocol-based, asynchronous, failure-tolerant coupling—have not yet been widely applied to computers that interact, on behalf of humans, directly with other computers.
That is about to change. In 1996, XML (eXtensible Markup Language) was created, and within a few years, it was applied to the invention of SOAP (Simple Object Access Protocol) and XMLWeb Services. Definition: An XML Web service is a computational resource defined solely in terms of the functions it performs, interacting through protocols using XML, SOAP, and WSDL and not presuming the presence of a human as one of the parties to the interaction.
Pursuing fun and profit, business and technical innovators have created invention after exciting invention. You are about to read the story and details of one of the latest, written by a man who played a key role in making XMLWeb Services broadly available.
—Andrew Layman
Click below to download the Index file related to this title:
Index