Creating and consuming web services in ASP.NET
For those who are new to the subject, web services are modular applications that can be described, published, located, and invoked over standard Internet protocols using standardized XML messaging. Applications use the XML-based SOAP for the exchange of information in a loosely coupled, distributed environment. Applications posted to the Web are described with the Web Services Description Language (WSDL) and registered with a private or public service registry using the UDDI standard, such as http://uddi.microsoft.com or http://uddi.ibm.com.
For details on creating a class that encapsulates the data you need to use it as the return type of a method of your web service, read Recipe 11.3 of ASP.NET Cookbook from O'Reilly Media.
Discovery is the process of finding out what web services are available, what methods and properties are exposed by a specific web service, what parameters those methods and properties expect to receive, and what data type the web method returns. All of this information is contained in the WSDL (Web Services Description Language) document.
To read more about discovery with ASP.NET, read Section 17.1 of Programming ASP.NET, 2nd Edition from O'Reilly Media.